Windows hosts do require the serial number to be set to any ascii string
to enumerate correctly. Set the serial number if provided or to "unset"
if not to provide a sane default which works for both hosts.

Reported-by: Andrey Zhizhikin <andrey.zhizhi...@leica-geosystems.com>
Signed-off-by: Marco Felsch <m.fel...@pengutronix.de>
---
Changelog

v2:
- adapt commit message
- use barebox_get_serial_number() and "unset"

 drivers/usb/gadget/udc/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
index b58498680ad1..e7cfa0d5d836 100644
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -1204,7 +1204,7 @@ int usb_add_gadget(struct usb_gadget *gadget)
        gadget->productname = xstrdup(barebox_get_model());
        dev_add_param_string(&gadget->dev, "productname", NULL, NULL,
                             &gadget->productname, NULL);
-       gadget->serialnumber = xstrdup("");
+       gadget->serialnumber = xstrdup(barebox_get_serial_number() ? : "unset");
        dev_add_param_string(&gadget->dev, "serialnumber", NULL, NULL,
                             &gadget->serialnumber, NULL);
 
-- 
2.39.2


Reply via email to