diff options
| author | sakumisu <[email protected]> | 2024-03-12 22:45:12 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2024-03-12 22:45:12 +0800 |
| commit | 2e862f38645460084e02cf3837c3aff687efa9c0 (patch) | |
| tree | 29d598fe6accfba46d1cecb49a5d798d31d49e29 | |
| parent | 6369ead1529d59e5e2aee6b08a6fdbe113348b1a (diff) | |
set config with configvalue
| -rw-r--r-- | core/usbh_core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/usbh_core.c b/core/usbh_core.c index 720dcdd9..56502dd1 100644 --- a/core/usbh_core.c +++ b/core/usbh_core.c @@ -393,6 +393,7 @@ int usbh_enumerate(struct usbh_hubport *hport) struct usb_endpoint_descriptor *ep; int dev_addr; uint16_t ep_mps; + uint8_t config_value; int ret; hport->setup = &g_setup_buffer[hport->bus->busid][hport->parent->index - 1][hport->port - 1]; @@ -538,6 +539,8 @@ int usbh_enumerate(struct usbh_hubport *hport) USB_LOG_ERR("No memory to alloc for raw_config_desc\r\n"); goto errout; } + + config_value = ((struct usb_configuration_descriptor *)ep0_request_buffer[hport->bus->busid])->bConfigurationValue; memcpy(hport->raw_config_desc, ep0_request_buffer, wTotalLength); #ifdef CONFIG_USBHOST_GET_STRING_DESC uint8_t string_buffer[128]; @@ -575,7 +578,7 @@ int usbh_enumerate(struct usbh_hubport *hport) /* Select device configuration 1 */ setup->bmRequestType = USB_REQUEST_DIR_OUT | USB_REQUEST_STANDARD | USB_REQUEST_RECIPIENT_DEVICE; setup->bRequest = USB_REQUEST_SET_CONFIGURATION; - setup->wValue = 1; + setup->wValue = config_value; setup->wIndex = 0; setup->wLength = 0; |
