summaryrefslogtreecommitdiff
path: root/firmware/usbstack/drivers/device/usb_storage.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/usbstack/drivers/device/usb_storage.c')
-rw-r--r--firmware/usbstack/drivers/device/usb_storage.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/firmware/usbstack/drivers/device/usb_storage.c b/firmware/usbstack/drivers/device/usb_storage.c
index 9133c85293..8c96914270 100644
--- a/firmware/usbstack/drivers/device/usb_storage.c
+++ b/firmware/usbstack/drivers/device/usb_storage.c
@@ -99,6 +99,14 @@ static struct usb_endpoint_descriptor storage_fs_bulk_out_desc = {
99 .wMaxPacketSize = 64, 99 .wMaxPacketSize = 64,
100}; 100};
101 101
102static struct usb_qualifier_descriptor storage_qualifier_desc = {
103 .bLength = sizeof(struct usb_qualifier_descriptor),
104 .bDescriptorType = USB_DT_DEVICE_QUALIFIER,
105 .bcdUSB = 0x0200,
106 .bDeviceClass = 0,
107 .bNumConfigurations = 1,
108};
109
102struct usb_descriptor_header *storage_fs_function[] = { 110struct usb_descriptor_header *storage_fs_function[] = {
103 (struct usb_descriptor_header *) &storage_interface_desc, 111 (struct usb_descriptor_header *) &storage_interface_desc,
104 (struct usb_descriptor_header *) &storage_fs_bulk_in_desc, 112 (struct usb_descriptor_header *) &storage_fs_bulk_in_desc,
@@ -220,6 +228,13 @@ int usb_storage_driver_request(struct usb_ctrlrequest* request)
220 res.buf = &storage_device_desc; 228 res.buf = &storage_device_desc;
221 break; 229 break;
222 230
231 case USB_DT_DEVICE_QUALIFIER:
232 logf("usb storage: sending qualifier dec");
233 ret = MIN(sizeof(struct usb_qualifier_descriptor), request->wLength);
234 res.buf = &storage_qualifier_desc;
235 break;
236
237 case USB_DT_OTHER_SPEED_CONFIG:
223 case USB_DT_CONFIG: 238 case USB_DT_CONFIG:
224 logf("usb storage: sending config desc"); 239 logf("usb storage: sending config desc");
225 240