
Since 842778a09104 commit, "fastboot devices" stopped to show correct device serial number for TI boards, showing this line instead:
???????????? fastboot
This is because serial# env variable could be set after g_dnl gadget was initialized (e.g. by using env_set() in the board file).
To fix this, before checking g_dnl_serial, let's re-check if we have valid serial# value. And if so, let's set it as g_dnl_serial value.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org --- drivers/usb/gadget/g_dnl.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c index 0491a0eea9..e4d0289757 100644 --- a/drivers/usb/gadget/g_dnl.c +++ b/drivers/usb/gadget/g_dnl.c @@ -226,6 +226,15 @@ static int g_dnl_bind(struct usb_composite_dev *cdev)
g_dnl_bind_fixup(&device_desc, cdev->driver->name);
+ /* First try to obtain serial number from serial# variable */ + if (strlen(g_dnl_serial) == 0) { + const char *s; + + s = env_get("serial#"); + if (s) + g_dnl_set_serialnumber((char *)s); + } + if (strlen(g_dnl_serial)) { id = usb_string_id(cdev); if (id < 0)