diff options
Diffstat (limited to 'firmware/usbstack')
-rw-r--r-- | firmware/usbstack/usb_core.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c index 65bf7293c8..50d93f7561 100644 --- a/firmware/usbstack/usb_core.c +++ b/firmware/usbstack/usb_core.c | |||
@@ -90,9 +90,9 @@ static struct usb_device_descriptor __attribute__((aligned(2))) | |||
90 | .idVendor = USB_VENDOR_ID, | 90 | .idVendor = USB_VENDOR_ID, |
91 | .idProduct = USB_PRODUCT_ID, | 91 | .idProduct = USB_PRODUCT_ID, |
92 | .bcdDevice = 0x0100, | 92 | .bcdDevice = 0x0100, |
93 | .iManufacturer = 1, | 93 | .iManufacturer = USB_STRING_INDEX_MANUFACTURER, |
94 | .iProduct = 2, | 94 | .iProduct = USB_STRING_INDEX_PRODUCT, |
95 | .iSerialNumber = 3, | 95 | .iSerialNumber = USB_STRING_INDEX_SERIAL, |
96 | .bNumConfigurations = 1 | 96 | .bNumConfigurations = 1 |
97 | } ; | 97 | } ; |
98 | 98 | ||
@@ -141,12 +141,12 @@ static const struct usb_string_descriptor __attribute__((aligned(2))) | |||
141 | lang_descriptor = | 141 | lang_descriptor = |
142 | USB_STRING_INITIALIZER(u"\x0409"); /* LANGID US English */ | 142 | USB_STRING_INITIALIZER(u"\x0409"); /* LANGID US English */ |
143 | 143 | ||
144 | static const struct usb_string_descriptor* const usb_strings[] = | 144 | static const struct usb_string_descriptor* const usb_strings[USB_STRING_INDEX_MAX] = |
145 | { | 145 | { |
146 | &lang_descriptor, | 146 | [USB_STRING_INDEX_LANGUAGE] = &lang_descriptor, |
147 | &usb_string_iManufacturer, | 147 | [USB_STRING_INDEX_MANUFACTURER] = &usb_string_iManufacturer, |
148 | &usb_string_iProduct, | 148 | [USB_STRING_INDEX_PRODUCT] = &usb_string_iProduct, |
149 | &usb_string_iSerial | 149 | [USB_STRING_INDEX_SERIAL] = &usb_string_iSerial, |
150 | }; | 150 | }; |
151 | 151 | ||
152 | static int usb_address = 0; | 152 | static int usb_address = 0; |
@@ -637,8 +637,7 @@ static void request_handler_device_get_descriptor(struct usb_ctrlrequest* req) | |||
637 | 637 | ||
638 | case USB_DT_STRING: | 638 | case USB_DT_STRING: |
639 | logf("STRING %d", index); | 639 | logf("STRING %d", index); |
640 | if((unsigned)index < (sizeof(usb_strings) / | 640 | if((unsigned)index < USB_STRING_INDEX_MAX) { |
641 | sizeof(struct usb_string_descriptor*))) { | ||
642 | size = usb_strings[index]->bLength; | 641 | size = usb_strings[index]->bLength; |
643 | ptr = usb_strings[index]; | 642 | ptr = usb_strings[index]; |
644 | } | 643 | } |