diff options
author | root <root@ka-ata-killa.ourano.james.local> | 2021-03-10 10:17:23 +0000 |
---|---|---|
committer | root <root@ka-ata-killa.ourano.james.local> | 2021-03-10 10:17:23 +0000 |
commit | 9da4b55529e3c9cb34be47ee23391c1dfd4dec5a (patch) | |
tree | 4e36c7ec587c12d79ceffcd769f1993e35f9c383 /app/dfu.c | |
parent | 49148e76706e5e24c2ba7f6ccc1d7ec4736ab2f3 (diff) | |
download | serial_over_dp-9da4b55529e3c9cb34be47ee23391c1dfd4dec5a.tar.gz serial_over_dp-9da4b55529e3c9cb34be47ee23391c1dfd4dec5a.tar.bz2 serial_over_dp-9da4b55529e3c9cb34be47ee23391c1dfd4dec5a.zip |
update libopencm3 to fix bugs in usb implementation
Diffstat (limited to 'app/dfu.c')
-rw-r--r-- | app/dfu.c | 24 |
1 files changed, 11 insertions, 13 deletions
@@ -36,7 +36,7 @@ const struct usb_iface_assoc_descriptor dfu_iface_assoc = { }; -static int +static void dfu_detach_complete (usbd_device *usbd_dev, struct usb_setup_data *req) { (void) req; @@ -44,23 +44,21 @@ dfu_detach_complete (usbd_device *usbd_dev, struct usb_setup_data *req) dfu_flag = 0xfee1dead; scb_reset_core(); - return 1; } -int +enum usbd_request_return_codes dfu_control_request (usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, - usbd_control_complete_callback *complete) -{ + usbd_control_complete_callback *complete) { (void) buf; (void) len; (void) usbd_dev; - if ((req->bmRequestType & 0x7F) != 0x21) { - return 0; /* Only accept class request. */ - } + if ((req->bmRequestType & 0x7F) != 0x21) + return USBD_REQ_NEXT_CALLBACK; - switch (req->bRequest) { + switch (req->bRequest) + { case DFU_GETSTATUS: { (*buf) [0] = DFU_STATUS_OK; (*buf) [1] = 0; @@ -69,20 +67,20 @@ dfu_control_request (usbd_device *usbd_dev, struct usb_setup_data *req, (*buf) [4] = STATE_APP_IDLE; (*buf) [5] = 0; /* iString not used here */ *len = 6; - return 1; + return USBD_REQ_HANDLED; } case DFU_GETSTATE: /* Return state with no state transision. */ *buf[0] = STATE_APP_IDLE; *len = 1; - return 1; + return USBD_REQ_HANDLED; case DFU_DETACH: *complete = dfu_detach_complete; - return 1; + return USBD_REQ_HANDLED; } - return 0; + return USBD_REQ_NEXT_CALLBACK; } |