diff options
| author | sakumisu <[email protected]> | 2024-10-30 22:19:14 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2024-10-30 22:19:14 +0800 |
| commit | 77136aa74376ac8016c2b62b5f8efed0a2d245c2 (patch) | |
| tree | af22b2ac8037f608a853887ca24b1f8d086f43a7 | |
| parent | 4784017f56e6c7f8698badb5055ca6c89eaf384a (diff) | |
update(core/usbd_core): implement USB_REQUEST_GET_INTERFACE request, refs:#268
| -rw-r--r-- | core/usbd_core.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/usbd_core.c b/core/usbd_core.c index 41507007..85f7b4f2 100644 --- a/core/usbd_core.c +++ b/core/usbd_core.c @@ -64,6 +64,7 @@ USB_NOCACHE_RAM_SECTION struct usbd_core_priv { bool test_req; #endif struct usbd_interface *intf[16]; + uint8_t intf_altsetting[16]; uint8_t intf_offset; struct usbd_tx_rx_msg tx_msg[CONFIG_USBDEV_EP_NUM]; @@ -710,11 +711,12 @@ static bool usbd_std_interface_req_handler(uint8_t busid, struct usb_setup_packe ret = false; break; case USB_REQUEST_GET_INTERFACE: - (*data)[0] = 0; + (*data)[0] = g_usbd_core[busid].intf_altsetting[intf_num]; *len = 1; break; case USB_REQUEST_SET_INTERFACE: + g_usbd_core[busid].intf_altsetting[intf_num] = LO_BYTE(setup->wValue); usbd_set_interface(busid, setup->wIndex, setup->wValue); *len = 0; break; |
