summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2024-04-29 11:26:28 +0800
committersakumisu <[email protected]>2024-04-29 11:29:52 +0800
commit5b72907f6d9f7566faa2be55d8033f3c8b552b8c (patch)
treecd6e38b9da4b6402d791537d82682eb2c00d9483
parent6abe6befa86af32f055289d7735eaeb8199caec4 (diff)
simplify code for get device qualifier desc
-rw-r--r--core/usbd_core.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/core/usbd_core.c b/core/usbd_core.c
index ae5b4ac9..a678c01e 100644
--- a/core/usbd_core.c
+++ b/core/usbd_core.c
@@ -49,7 +49,9 @@ USB_NOCACHE_RAM_SECTION struct usbd_core_priv {
/** Currently selected configuration */
uint8_t configuration;
+#ifdef CONFIG_USBDEV_ADVANCE_DESC
uint8_t speed;
+#endif
#ifdef CONFIG_USBDEV_TEST_MODE
bool test_req;
#endif
@@ -183,6 +185,9 @@ static bool usbd_get_descriptor(uint8_t busid, uint16_t type_index, uint8_t **da
}
break;
case USB_DESCRIPTOR_TYPE_DEVICE_QUALIFIER:
+#ifndef CONFIG_USB_HS
+ return false;
+#else
desc = g_usbd_core[busid].descriptors->device_quality_descriptor_callback(g_usbd_core[busid].speed);
if (desc == NULL) {
found = false;
@@ -190,6 +195,7 @@ static bool usbd_get_descriptor(uint8_t busid, uint16_t type_index, uint8_t **da
}
desc_len = desc[0];
break;
+#endif
case USB_DESCRIPTOR_TYPE_OTHER_SPEED:
desc = g_usbd_core[busid].descriptors->other_speed_descriptor_callback(g_usbd_core[busid].speed);
if (desc == NULL) {
@@ -896,13 +902,12 @@ static bool usbd_setup_request_handler(uint8_t busid, struct usb_setup_packet *s
{
switch (setup->bmRequestType & USB_REQUEST_TYPE_MASK) {
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_DBG("Ignore DQD in fs\r\n"); /* Device Qualifier Descriptor */
- return false;
- }
-#endif
if (usbd_standard_request_handler(busid, setup, data, len) < 0) {
+ /* Ignore error log for getting Device Qualifier Descriptor request */
+ if ((setup->bRequest == 0x06) && (setup->wValue == 0x0600)) {
+ //USB_LOG_DBG("Ignore DQD in fs\r\n");
+ return false;
+ }
USB_LOG_ERR("standard request error\r\n");
usbd_print_setup(setup);
return false;
@@ -974,15 +979,7 @@ void usbd_event_reset_handler(uint8_t busid)
g_usbd_core[busid].configuration = 0;
#ifdef CONFIG_USBDEV_ADVANCE_DESC
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
-
struct usb_endpoint_descriptor ep0;
ep0.bLength = 7;