move get speed before get device desc
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user