usb: give USB transfer completion events two data pointers
Change-Id: I036cc7f02c2f86a364d2dba59493a6aa893f2c16
This commit is contained in:
parent
ec164c389c
commit
b69d43c247
|
@ -178,7 +178,7 @@ struct usb_transfer_completion_event_data
|
||||||
int dir;
|
int dir;
|
||||||
int status;
|
int status;
|
||||||
int length;
|
int length;
|
||||||
void* data;
|
void* data[2];
|
||||||
};
|
};
|
||||||
#endif /* HAVE_USBSTACK */
|
#endif /* HAVE_USBSTACK */
|
||||||
|
|
||||||
|
|
|
@ -446,10 +446,10 @@ void usb_core_handle_transfer_completion(
|
||||||
case EP_CONTROL:
|
case EP_CONTROL:
|
||||||
logf("ctrl handled %ld req=0x%x",
|
logf("ctrl handled %ld req=0x%x",
|
||||||
current_tick,
|
current_tick,
|
||||||
((struct usb_ctrlrequest*)event->data)->bRequest);
|
((struct usb_ctrlrequest*)event->data[0])->bRequest);
|
||||||
|
|
||||||
usb_core_control_request_handler(
|
usb_core_control_request_handler(
|
||||||
(struct usb_ctrlrequest*)event->data);
|
(struct usb_ctrlrequest*)event->data[0]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
handler = ep_data[ep].completion_handler[EP_DIR(event->dir)];
|
handler = ep_data[ep].completion_handler[EP_DIR(event->dir)];
|
||||||
|
@ -952,7 +952,8 @@ void usb_core_transfer_complete(int endpoint, int dir, int status, int length)
|
||||||
|
|
||||||
completion_event->endpoint = endpoint;
|
completion_event->endpoint = endpoint;
|
||||||
completion_event->dir = dir;
|
completion_event->dir = dir;
|
||||||
completion_event->data = 0;
|
completion_event->data[0] = NULL;
|
||||||
|
completion_event->data[1] = NULL;
|
||||||
completion_event->status = status;
|
completion_event->status = status;
|
||||||
completion_event->length = length;
|
completion_event->length = length;
|
||||||
/* All other endpoints. Let the thread deal with it */
|
/* All other endpoints. Let the thread deal with it */
|
||||||
|
@ -984,7 +985,8 @@ void usb_core_legacy_control_request(struct usb_ctrlrequest* req)
|
||||||
|
|
||||||
completion_event->endpoint = EP_CONTROL;
|
completion_event->endpoint = EP_CONTROL;
|
||||||
completion_event->dir = 0;
|
completion_event->dir = 0;
|
||||||
completion_event->data = (void*)req;
|
completion_event->data[0] = (void*)req;
|
||||||
|
completion_event->data[1] = NULL;
|
||||||
completion_event->status = 0;
|
completion_event->status = 0;
|
||||||
completion_event->length = 0;
|
completion_event->length = 0;
|
||||||
logf("ctrl received %ld, req=0x%x", current_tick, req->bRequest);
|
logf("ctrl received %ld, req=0x%x", current_tick, req->bRequest);
|
||||||
|
|
Loading…
Reference in New Issue