diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2021-09-20 00:58:33 +0100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2021-10-16 21:14:42 +0100 |
commit | b69d43c247994c846da75c4b35d4351fbf96984d (patch) | |
tree | e15b746283bb42843243519b0f1aab5e92ff72e3 | |
parent | ec164c389c99d8129f9d6cacda2731bde9b08257 (diff) | |
download | rockbox-b69d43c247994c846da75c4b35d4351fbf96984d.tar.gz rockbox-b69d43c247994c846da75c4b35d4351fbf96984d.zip |
usb: give USB transfer completion events two data pointers
Change-Id: I036cc7f02c2f86a364d2dba59493a6aa893f2c16
-rw-r--r-- | firmware/export/usb.h | 2 | ||||
-rw-r--r-- | firmware/usbstack/usb_core.c | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/firmware/export/usb.h b/firmware/export/usb.h index 2bcd95ef81..fe9f3bcfa1 100644 --- a/firmware/export/usb.h +++ b/firmware/export/usb.h @@ -178,7 +178,7 @@ struct usb_transfer_completion_event_data int dir; int status; int length; - void* data; + void* data[2]; }; #endif /* HAVE_USBSTACK */ diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c index 1f17872ba8..4bc0443477 100644 --- a/firmware/usbstack/usb_core.c +++ b/firmware/usbstack/usb_core.c @@ -446,10 +446,10 @@ void usb_core_handle_transfer_completion( case EP_CONTROL: logf("ctrl handled %ld req=0x%x", current_tick, - ((struct usb_ctrlrequest*)event->data)->bRequest); + ((struct usb_ctrlrequest*)event->data[0])->bRequest); usb_core_control_request_handler( - (struct usb_ctrlrequest*)event->data); + (struct usb_ctrlrequest*)event->data[0]); break; default: 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->dir = dir; - completion_event->data = 0; + completion_event->data[0] = NULL; + completion_event->data[1] = NULL; completion_event->status = status; completion_event->length = length; /* 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->dir = 0; - completion_event->data = (void*)req; + completion_event->data[0] = (void*)req; + completion_event->data[1] = NULL; completion_event->status = 0; completion_event->length = 0; logf("ctrl received %ld, req=0x%x", current_tick, req->bRequest); |