summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/usb/arcotg_dcd.c4
-rw-r--r--firmware/usbstack/core/epsetup.c8
-rw-r--r--firmware/usbstack/drivers/device/usb_serial.c4
-rw-r--r--firmware/usbstack/drivers/device/usb_storage.c8
4 files changed, 18 insertions, 6 deletions
diff --git a/firmware/drivers/usb/arcotg_dcd.c b/firmware/drivers/usb/arcotg_dcd.c
index d57850f067..b1cb24d9ef 100644
--- a/firmware/drivers/usb/arcotg_dcd.c
+++ b/firmware/drivers/usb/arcotg_dcd.c
@@ -613,10 +613,6 @@ int usb_arcotg_dcd_enable(struct usb_ep* ep,
613 + } 613 + }
614#endif 614#endif
615 615
616 /* set address of used ep in desc */
617 logf("ep address %x", desc->bEndpointAddress);
618 desc->bEndpointAddress |= ep->ep_num;
619
620 /* here initialize variable of ep */ 616 /* here initialize variable of ep */
621 ep->maxpacket = max; 617 ep->maxpacket = max;
622 ep->desc = desc; 618 ep->desc = desc;
diff --git a/firmware/usbstack/core/epsetup.c b/firmware/usbstack/core/epsetup.c
index 702108a1cb..8581544e0f 100644
--- a/firmware/usbstack/core/epsetup.c
+++ b/firmware/usbstack/core/epsetup.c
@@ -164,6 +164,12 @@ static int ep_matches(struct usb_ep* ep, struct usb_endpoint_descriptor* desc)
164 } 164 }
165 165
166 /* MATCH!! */ 166 /* MATCH!! */
167 167
168 /* set address of used ep in desc */
169 logf("ep address %x", desc->bEndpointAddress);
170 desc->bEndpointAddress |= ep->ep_num;
171
172 ep->desc = desc;
173
168 return 1; 174 return 1;
169} 175}
diff --git a/firmware/usbstack/drivers/device/usb_serial.c b/firmware/usbstack/drivers/device/usb_serial.c
index 9f1778a3f2..578e9a1e2d 100644
--- a/firmware/usbstack/drivers/device/usb_serial.c
+++ b/firmware/usbstack/drivers/device/usb_serial.c
@@ -201,6 +201,10 @@ int usb_serial_driver_bind(void* controler_ops)
201 serial_debug_desc.bDebugInEndpoint = dev.in->ep_num; 201 serial_debug_desc.bDebugInEndpoint = dev.in->ep_num;
202 serial_debug_desc.bDebugOutEndpoint = dev.out->ep_num; 202 serial_debug_desc.bDebugOutEndpoint = dev.out->ep_num;
203 203
204 /* update hs descriptors as we asume that endpoints are the same for fs and hs */
205 serial_hs_in_desc.bEndpointAddress = serial_fs_in_desc.bEndpointAddress;
206 serial_hs_out_desc.bEndpointAddress = serial_fs_out_desc.bEndpointAddress;
207
204 return 0; 208 return 0;
205 209
206autoconf_fail: 210autoconf_fail:
diff --git a/firmware/usbstack/drivers/device/usb_storage.c b/firmware/usbstack/drivers/device/usb_storage.c
index 4f820fbe90..88129cdc96 100644
--- a/firmware/usbstack/drivers/device/usb_storage.c
+++ b/firmware/usbstack/drivers/device/usb_storage.c
@@ -53,7 +53,6 @@ static struct usb_device_descriptor storage_device_desc = {
53 .bDeviceClass = 0, 53 .bDeviceClass = 0,
54 .bDeviceSubClass = 0, 54 .bDeviceSubClass = 0,
55 .bDeviceProtocol = 0, 55 .bDeviceProtocol = 0,
56 .bMaxPacketSize0 = 64,
57 .idVendor = 0xffff, 56 .idVendor = 0xffff,
58 .idProduct = 0x0001, 57 .idProduct = 0x0001,
59 .iManufacturer = 0, 58 .iManufacturer = 0,
@@ -181,6 +180,13 @@ int usb_storage_driver_bind(void* controler_ops)
181 dev.out->claimed = true; 180 dev.out->claimed = true;
182 logf("usb storage: out: %s", dev.out->name); 181 logf("usb storage: out: %s", dev.out->name);
183 182
183 /* update device decsriptor */
184 storage_device_desc.bMaxPacketSize0 = ops->ep0->maxpacket;
185
186 /* update hs descriptors as we asume that endpoints are the same for fs and hs */
187 storage_hs_bulk_in_desc.bEndpointAddress = storage_fs_bulk_in_desc.bEndpointAddress;
188 storage_hs_bulk_out_desc.bEndpointAddress = storage_fs_bulk_out_desc.bEndpointAddress;
189
184 return 0; 190 return 0;
185 191
186autoconf_fail: 192autoconf_fail: