|
@@ -1047,9 +1047,9 @@ composite_unbind(struct usb_gadget *gadget)
|
|
|
kfree(cdev->req->buf);
|
|
|
usb_ep_free_request(gadget->ep0, cdev->req);
|
|
|
}
|
|
|
+ device_remove_file(&gadget->dev, &dev_attr_suspended);
|
|
|
kfree(cdev);
|
|
|
set_gadget_data(gadget, NULL);
|
|
|
- device_remove_file(&gadget->dev, &dev_attr_suspended);
|
|
|
composite = NULL;
|
|
|
}
|
|
|
|
|
@@ -1107,14 +1107,6 @@ static int composite_bind(struct usb_gadget *gadget)
|
|
|
*/
|
|
|
usb_ep_autoconfig_reset(cdev->gadget);
|
|
|
|
|
|
- /* standardized runtime overrides for device ID data */
|
|
|
- if (idVendor)
|
|
|
- cdev->desc.idVendor = cpu_to_le16(idVendor);
|
|
|
- if (idProduct)
|
|
|
- cdev->desc.idProduct = cpu_to_le16(idProduct);
|
|
|
- if (bcdDevice)
|
|
|
- cdev->desc.bcdDevice = cpu_to_le16(bcdDevice);
|
|
|
-
|
|
|
/* composite gadget needs to assign strings for whole device (like
|
|
|
* serial number), register function drivers, potentially update
|
|
|
* power state and consumption, etc
|
|
@@ -1126,6 +1118,14 @@ static int composite_bind(struct usb_gadget *gadget)
|
|
|
cdev->desc = *composite->dev;
|
|
|
cdev->desc.bMaxPacketSize0 = gadget->ep0->maxpacket;
|
|
|
|
|
|
+ /* standardized runtime overrides for device ID data */
|
|
|
+ if (idVendor)
|
|
|
+ cdev->desc.idVendor = cpu_to_le16(idVendor);
|
|
|
+ if (idProduct)
|
|
|
+ cdev->desc.idProduct = cpu_to_le16(idProduct);
|
|
|
+ if (bcdDevice)
|
|
|
+ cdev->desc.bcdDevice = cpu_to_le16(bcdDevice);
|
|
|
+
|
|
|
/* stirng overrides */
|
|
|
if (iManufacturer || !cdev->desc.iManufacturer) {
|
|
|
if (!iManufacturer && !composite->iManufacturer &&
|