diff options
Diffstat (limited to 'firmware/usbstack/usb_core.c')
-rw-r--r-- | firmware/usbstack/usb_core.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c index 37dbdb983d..a2e2b5f063 100644 --- a/firmware/usbstack/usb_core.c +++ b/firmware/usbstack/usb_core.c | |||
@@ -169,7 +169,8 @@ static enum { DEFAULT, ADDRESS, CONFIGURED } usb_state; | |||
169 | static int usb_core_num_interfaces; | 169 | static int usb_core_num_interfaces; |
170 | 170 | ||
171 | typedef void (*completion_handler_t)(int ep, int dir, int status, int length); | 171 | typedef void (*completion_handler_t)(int ep, int dir, int status, int length); |
172 | typedef bool (*control_handler_t)(struct usb_ctrlrequest* req, unsigned char* dest); | 172 | typedef bool (*control_handler_t)(struct usb_ctrlrequest* req, |
173 | unsigned char* dest); | ||
173 | 174 | ||
174 | static struct | 175 | static struct |
175 | { | 176 | { |
@@ -380,7 +381,8 @@ void usb_core_exit(void) | |||
380 | logf("usb_core_exit() finished"); | 381 | logf("usb_core_exit() finished"); |
381 | } | 382 | } |
382 | 383 | ||
383 | void usb_core_handle_transfer_completion(struct usb_transfer_completion_event_data* event) | 384 | void usb_core_handle_transfer_completion( |
385 | struct usb_transfer_completion_event_data* event) | ||
384 | { | 386 | { |
385 | completion_handler_t handler; | 387 | completion_handler_t handler; |
386 | int ep = event->endpoint; | 388 | int ep = event->endpoint; |
@@ -388,7 +390,8 @@ void usb_core_handle_transfer_completion(struct usb_transfer_completion_event_da | |||
388 | switch(ep) { | 390 | switch(ep) { |
389 | case EP_CONTROL: | 391 | case EP_CONTROL: |
390 | logf("ctrl handled %ld",current_tick); | 392 | logf("ctrl handled %ld",current_tick); |
391 | usb_core_control_request_handler((struct usb_ctrlrequest*)event->data); | 393 | usb_core_control_request_handler( |
394 | (struct usb_ctrlrequest*)event->data); | ||
392 | break; | 395 | break; |
393 | default: | 396 | default: |
394 | handler = ep_data[ep].completion_handler[EP_DIR(event->dir)]; | 397 | handler = ep_data[ep].completion_handler[EP_DIR(event->dir)]; |
@@ -714,7 +717,8 @@ static void request_handler_endoint_drivers(struct usb_ctrlrequest* req) | |||
714 | control_handler_t control_handler = NULL; | 717 | control_handler_t control_handler = NULL; |
715 | 718 | ||
716 | if(EP_NUM(req->wIndex) < USB_NUM_ENDPOINTS) | 719 | if(EP_NUM(req->wIndex) < USB_NUM_ENDPOINTS) |
717 | control_handler = ep_data[EP_NUM(req->wIndex)].control_handler[EP_DIR(req->wIndex)]; | 720 | control_handler = |
721 | ep_data[EP_NUM(req->wIndex)].control_handler[EP_DIR(req->wIndex)]; | ||
718 | 722 | ||
719 | if(control_handler) | 723 | if(control_handler) |
720 | handled = control_handler(req, response_data); | 724 | handled = control_handler(req, response_data); |
@@ -746,7 +750,8 @@ static void request_handler_endpoint_standard(struct usb_ctrlrequest* req) | |||
746 | response_data[1] = 0; | 750 | response_data[1] = 0; |
747 | logf("usb_core: GET_STATUS"); | 751 | logf("usb_core: GET_STATUS"); |
748 | if(req->wIndex > 0) | 752 | if(req->wIndex > 0) |
749 | response_data[0] = usb_drv_stalled(EP_NUM(req->wIndex), EP_DIR(req->wIndex)); | 753 | response_data[0] = usb_drv_stalled(EP_NUM(req->wIndex), |
754 | EP_DIR(req->wIndex)); | ||
750 | 755 | ||
751 | usb_drv_recv(EP_CONTROL, NULL, 0); | 756 | usb_drv_recv(EP_CONTROL, NULL, 0); |
752 | usb_drv_send(EP_CONTROL, response_data, 2); | 757 | usb_drv_send(EP_CONTROL, response_data, 2); |