|
@@ -929,6 +929,7 @@ static int standard_setup_req(struct fsg_dev *fsg,
|
|
|
|
|
|
case USB_DT_DEVICE:
|
|
|
VDBG(fsg, "get device descriptor\n");
|
|
|
+ device_desc.bMaxPacketSize0 = fsg->ep0->maxpacket;
|
|
|
value = sizeof device_desc;
|
|
|
memcpy(req->buf, &device_desc, value);
|
|
|
break;
|
|
@@ -936,6 +937,11 @@ static int standard_setup_req(struct fsg_dev *fsg,
|
|
|
VDBG(fsg, "get device qualifier\n");
|
|
|
if (!gadget_is_dualspeed(fsg->gadget))
|
|
|
break;
|
|
|
+ /*
|
|
|
+ * Assume ep0 uses the same maxpacket value for both
|
|
|
+ * speeds
|
|
|
+ */
|
|
|
+ dev_qualifier.bMaxPacketSize0 = fsg->ep0->maxpacket;
|
|
|
value = sizeof dev_qualifier;
|
|
|
memcpy(req->buf, &dev_qualifier, value);
|
|
|
break;
|
|
@@ -3417,7 +3423,6 @@ static int __init fsg_bind(struct usb_gadget *gadget)
|
|
|
}
|
|
|
|
|
|
/* Fix up the descriptors */
|
|
|
- device_desc.bMaxPacketSize0 = fsg->ep0->maxpacket;
|
|
|
device_desc.idVendor = cpu_to_le16(mod_data.vendor);
|
|
|
device_desc.idProduct = cpu_to_le16(mod_data.product);
|
|
|
device_desc.bcdDevice = cpu_to_le16(mod_data.release);
|
|
@@ -3431,9 +3436,6 @@ static int __init fsg_bind(struct usb_gadget *gadget)
|
|
|
if (gadget_is_dualspeed(gadget)) {
|
|
|
fsg_hs_function[i + FSG_HS_FUNCTION_PRE_EP_ENTRIES] = NULL;
|
|
|
|
|
|
- /* Assume ep0 uses the same maxpacket value for both speeds */
|
|
|
- dev_qualifier.bMaxPacketSize0 = fsg->ep0->maxpacket;
|
|
|
-
|
|
|
/* Assume endpoint addresses are the same for both speeds */
|
|
|
fsg_hs_bulk_in_desc.bEndpointAddress =
|
|
|
fsg_fs_bulk_in_desc.bEndpointAddress;
|