diff options
author | root <root@ka-ata-killa.ourano.james.local> | 2021-03-06 18:19:33 +0000 |
---|---|---|
committer | root <root@ka-ata-killa.ourano.james.local> | 2021-03-06 18:23:04 +0000 |
commit | 03486e52a2dde8ade759f36fea8b403b6524451c (patch) | |
tree | dc54d6ff9797340d83e159b596fd80cc1f2826c6 /app/usb.c | |
parent | f519bbe55f6917d86af6bb4946dfef073175d8f3 (diff) | |
download | clock-03486e52a2dde8ade759f36fea8b403b6524451c.tar.gz clock-03486e52a2dde8ade759f36fea8b403b6524451c.tar.bz2 clock-03486e52a2dde8ade759f36fea8b403b6524451c.zip |
pull a new libopencm3 in the hope it fixes tim's usb problems
Diffstat (limited to 'app/usb.c')
-rw-r--r-- | app/usb.c | 25 |
1 files changed, 17 insertions, 8 deletions
@@ -77,16 +77,25 @@ void otg_fs_isr (void) } -static int control_request (usbd_device *usbd_dev, - struct usb_setup_data *req, - uint8_t **buf, - uint16_t *len, - usbd_control_complete_callback *complete) +static enum usbd_request_return_codes control_request (usbd_device *usbd_dev, + struct usb_setup_data *req, + uint8_t **buf, + uint16_t *len, + usbd_control_complete_callback *complete) { - if (dfu_control_request (usbd_dev, req, buf, len, complete)) - return 1; + enum usbd_request_return_codes ret; - return cdcacm_control_request (usbd_dev, req, buf, len, complete); + ret = dfu_control_request (usbd_dev, req, buf, len, complete); + + if (ret != USBD_REQ_NEXT_CALLBACK) + return ret; + + ret = cdcacm_control_request (usbd_dev, req, buf, len, complete); + + if (ret != USBD_REQ_NEXT_CALLBACK) + return ret; + + return USBD_REQ_NOTSUPP; } static void set_config (usbd_device *usbd_dev, uint16_t wValue) |