diff mbox

[U-Boot] usb: gadget: Call g_dnl_bind_fixup() before testing g_dnl_serial length

Message ID 1498475098-17641-1-git-send-email-lukma@denx.de
State Accepted
Commit 2a0583e3e886196338ef373c045d4a0e02ee8670
Delegated to: Tom Rini
Headers show

Commit Message

Lukasz Majewski June 26, 2017, 11:04 a.m. UTC
After the commit SHA1: 842778a091 - the serial number descriptor is only
visible when we have non zero length of g_dnl_serial.

However, on some platforms (e.g. Siemens) the serial number is set at
g_dnl_bind_fixup(), so with the current code we will always omit the
serial (since it is not set).

This commit moves the g_dnl_bind_fixup() call before the g_dnl_serial
length test.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
---
 drivers/usb/gadget/g_dnl.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Heiko Schocher June 26, 2017, 11:20 a.m. UTC | #1
Hello Lukasz,

Am 26.06.2017 um 13:04 schrieb Lukasz Majewski:
> After the commit SHA1: 842778a091 - the serial number descriptor is only
> visible when we have non zero length of g_dnl_serial.
>
> However, on some platforms (e.g. Siemens) the serial number is set at
> g_dnl_bind_fixup(), so with the current code we will always omit the
> serial (since it is not set).
>
> This commit moves the g_dnl_bind_fixup() call before the g_dnl_serial
> length test.
>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Acked-by: Heiko Schocher <hs@denx.de>
> ---
>   drivers/usb/gadget/g_dnl.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)

Just Tested on the smartweb board. Works fine!

Tested-by: Heiko Schocher <hs@denx.de>

bye,
Heiko
>
> diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
> index d4bee9b..0491a0e 100644
> --- a/drivers/usb/gadget/g_dnl.c
> +++ b/drivers/usb/gadget/g_dnl.c
> @@ -224,6 +224,8 @@ static int g_dnl_bind(struct usb_composite_dev *cdev)
>   	g_dnl_string_defs[1].id = id;
>   	device_desc.iProduct = id;
>
> +	g_dnl_bind_fixup(&device_desc, cdev->driver->name);
> +
>   	if (strlen(g_dnl_serial)) {
>   		id = usb_string_id(cdev);
>   		if (id < 0)
> @@ -233,7 +235,6 @@ static int g_dnl_bind(struct usb_composite_dev *cdev)
>   		device_desc.iSerialNumber = id;
>   	}
>
> -	g_dnl_bind_fixup(&device_desc, cdev->driver->name);
>   	ret = g_dnl_config_register(cdev);
>   	if (ret)
>   		goto error;
>
Tom Rini June 29, 2017, 5:28 p.m. UTC | #2
On Mon, Jun 26, 2017 at 01:04:58PM +0200, Lukasz Majewski wrote:

> After the commit SHA1: 842778a091 - the serial number descriptor is only
> visible when we have non zero length of g_dnl_serial.
> 
> However, on some platforms (e.g. Siemens) the serial number is set at
> g_dnl_bind_fixup(), so with the current code we will always omit the
> serial (since it is not set).
> 
> This commit moves the g_dnl_bind_fixup() call before the g_dnl_serial
> length test.
> 
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Acked-by: Heiko Schocher <hs@denx.de>
> Tested-by: Heiko Schocher <hs@denx.de>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index d4bee9b..0491a0e 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -224,6 +224,8 @@  static int g_dnl_bind(struct usb_composite_dev *cdev)
 	g_dnl_string_defs[1].id = id;
 	device_desc.iProduct = id;
 
+	g_dnl_bind_fixup(&device_desc, cdev->driver->name);
+
 	if (strlen(g_dnl_serial)) {
 		id = usb_string_id(cdev);
 		if (id < 0)
@@ -233,7 +235,6 @@  static int g_dnl_bind(struct usb_composite_dev *cdev)
 		device_desc.iSerialNumber = id;
 	}
 
-	g_dnl_bind_fixup(&device_desc, cdev->driver->name);
 	ret = g_dnl_config_register(cdev);
 	if (ret)
 		goto error;