- Instead of stalling at Device Qualification and Debug descriptors, return 0blockKey
@@ -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; |
@@ -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 { |