move get speed before get device desc

This commit is contained in:
sakumisu
2024-04-25 21:11:55 +08:00
parent 23e2787a43
commit 694b201ff7

View File

@@ -146,6 +146,7 @@ static bool usbd_get_descriptor(uint8_t busid, uint16_t type_index, uint8_t **da
switch (type) {
case USB_DESCRIPTOR_TYPE_DEVICE:
g_usbd_core[busid].speed = usbd_get_port_speed(busid, 0); /* before we get device descriptor, we have known steady port speed */
desc = g_usbd_core[busid].descriptors->device_descriptor_callback(g_usbd_core[busid].speed);
if (desc == NULL) {
found = false;
@@ -897,7 +898,7 @@ static bool usbd_setup_request_handler(uint8_t busid, struct usb_setup_packet *s
case USB_REQUEST_STANDARD:
#ifndef CONFIG_USB_HS
if ((setup->bRequest == 0x06) && (setup->wValue == 0x0600) && (g_usbd_core[busid].speed <= USB_SPEED_FULL)) {
USB_LOG_WRN("Ignore DQD in fs\r\n"); /* Device Qualifier Descriptor */
//USB_LOG_DBG("Ignore DQD in fs\r\n"); /* Device Qualifier Descriptor */
return false;
}
#endif
@@ -972,10 +973,13 @@ void usbd_event_reset_handler(uint8_t busid)
usbd_set_address(busid, 0);
g_usbd_core[busid].configuration = 0;
#ifdef CONFIG_USBDEV_ADVANCE_DESC
g_usbd_core[busid].speed = usbd_get_port_speed(busid, 0);
g_usbd_core[busid].speed = USB_SPEED_UNKNOWN;
#else
#ifndef CONFIG_USB_HS
/* just check for get device quality desc request */
g_usbd_core[busid].speed = USB_SPEED_FULL;
#else
/* nothing to use */
#endif
#endif