diff options
Diffstat (limited to 'firmware/usbstack/drivers/device/usb_storage.c')
-rw-r--r-- | firmware/usbstack/drivers/device/usb_storage.c | 15 |
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 | ||
102 | static 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 | |||
102 | struct usb_descriptor_header *storage_fs_function[] = { | 110 | struct 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 | ||