diff options
| author | sakumisu <[email protected]> | 2024-04-25 21:11:55 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2024-04-25 21:11:55 +0800 |
| commit | 694b201ff742bfb623d9640412945f36ce036469 (patch) | |
| tree | 1c017d540c9be7952c0d1b6fbeaa4046dd999431 | |
| parent | 23e2787a43c552ba417e7f81abb5733876940854 (diff) | |
move get speed before get device desc
| -rw-r--r-- | core/usbd_core.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/usbd_core.c b/core/usbd_core.c index 9f917ea3..ae5b4ac9 100644 --- a/core/usbd_core.c +++ b/core/usbd_core.c @@ -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 |
