diff --git a/Bootloader/usb.c b/Bootloader/usb.c index 344a02a..942aeab 100644 --- a/Bootloader/usb.c +++ b/Bootloader/usb.c @@ -465,6 +465,13 @@ static void usb_handle_control(void *data, ssize_t len, void *cbdata) default: fail = -1; break; + + // Cleanup lsusb errors, just return 0 instead of stalling + case USB_DESC_DEVQUAL: + case USB_DESC_DEBUG: + usb_ep0_tx_cp(&zero16, sizeof(zero16), req->wLength, NULL, NULL); + fail = 0; + break; } /* we set fail already, so we can go directly to `err' */ goto err; diff --git a/Bootloader/usb.h b/Bootloader/usb.h index e7c4067..d00a8b7 100644 --- a/Bootloader/usb.h +++ b/Bootloader/usb.h @@ -79,7 +79,9 @@ enum usb_desc_type { USB_DESC_EP = 5, USB_DESC_DEVQUAL = 6, USB_DESC_OTHERSPEED = 7, - USB_DESC_POWER = 8 + USB_DESC_POWER = 8, + USB_DESC_OTG = 9, + USB_DESC_DEBUG = 10, }; struct usb_desc_type_t {