summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget
diff options
context:
space:
mode:
authorJun Li <jun.li@nxp.com>2021-01-25 16:43:52 +0300
committerMarek Vasut <marex@denx.de>2021-01-31 16:08:56 +0300
commit4e643671f53173bf0f95f11e3b5a1872ffe029d3 (patch)
tree8191a61b1045bc704025f24b9d08a19040833e8e /drivers/usb/gadget
parent8043cf8fbd93dfceeec14a8c00eda292deaca938 (diff)
downloadu-boot-4e643671f53173bf0f95f11e3b5a1872ffe029d3.tar.xz
usb: gadget: set correct usb_configuration for os_desc_config
The current way to set cdev->os_desc_config is wrong if user restart fastboot, as the old config is not used anymore and new allocated usb_configuration will be used, so set the os_desc_config while usb_add_config. Reviewed-by: Ye Li <ye.li@nxp.com> Signed-off-by: Li Jun <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r--drivers/usb/gadget/composite.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index cd61bfec38..e6fdefd3d0 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -399,10 +399,6 @@ static int set_config(struct usb_composite_dev *cdev,
goto done;
cdev->config = c;
- if (cdev->use_os_string) {
- cdev->os_desc_config = c;
- os_desc_config = c;
- }
/* Initialize all interfaces by setting them to altsetting zero. */
for (tmp = 0; tmp < MAX_CONFIG_INTERFACES; tmp++) {
@@ -516,6 +512,9 @@ int usb_add_config(struct usb_composite_dev *cdev,
usb_ep_autoconfig_reset(cdev->gadget);
+ if (os_desc_config)
+ cdev->os_desc_config = os_desc_config;
+
done:
if (status)
debug("added config '%s'/%u --> %d\n", config->label,
@@ -1373,9 +1372,6 @@ static int composite_bind(struct usb_gadget *gadget)
/* Microsoft OS String Descriptor */
utf8_to_utf16le(qw_sign_buf, (__le16 *)cdev->qw_sign,
OS_STRING_QW_SIGN_LEN / 2);
-
- if (os_desc_config)
- cdev->os_desc_config = os_desc_config;
}
debug("%s: ready\n", composite->name);