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