summaryrefslogtreecommitdiffstats
path: root/app/usb.c
diff options
context:
space:
mode:
authorroot <root@ka-ata-killa.ourano.james.local>2021-03-06 18:19:33 +0000
committerroot <root@ka-ata-killa.ourano.james.local>2021-03-06 18:23:04 +0000
commit03486e52a2dde8ade759f36fea8b403b6524451c (patch)
treedc54d6ff9797340d83e159b596fd80cc1f2826c6 /app/usb.c
parentf519bbe55f6917d86af6bb4946dfef073175d8f3 (diff)
downloadclock-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.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/app/usb.c b/app/usb.c
index fc9e6ea..d1fb625 100644
--- a/app/usb.c
+++ b/app/usb.c
@@ -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)