summaryrefslogtreecommitdiff
path: root/firmware/usbstack/usb_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/usbstack/usb_core.c')
-rw-r--r--firmware/usbstack/usb_core.c15
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;
169static int usb_core_num_interfaces; 169static int usb_core_num_interfaces;
170 170
171typedef void (*completion_handler_t)(int ep, int dir, int status, int length); 171typedef void (*completion_handler_t)(int ep, int dir, int status, int length);
172typedef bool (*control_handler_t)(struct usb_ctrlrequest* req, unsigned char* dest); 172typedef bool (*control_handler_t)(struct usb_ctrlrequest* req,
173 unsigned char* dest);
173 174
174static struct 175static 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
383void usb_core_handle_transfer_completion(struct usb_transfer_completion_event_data* event) 384void 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);