summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/gadget/multi.c2
-rw-r--r--drivers/usb/gadget/udc-core.c3
-rw-r--r--include/usb/gadget.h1
3 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/gadget/multi.c b/drivers/usb/gadget/multi.c
index 445cc32420..95f5b90c88 100644
--- a/drivers/usb/gadget/multi.c
+++ b/drivers/usb/gadget/multi.c
@@ -179,8 +179,10 @@ static int multi_bind(struct usb_composite_dev *cdev)
strings_dev[USB_GADGET_MANUFACTURER_IDX].s = gadget->manufacturer;
strings_dev[USB_GADGET_PRODUCT_IDX].s = gadget->productname;
+ strings_dev[USB_GADGET_SERIAL_IDX].s = gadget->serialnumber;
device_desc.iProduct = strings_dev[USB_GADGET_PRODUCT_IDX].id;
+ device_desc.iSerialNumber = strings_dev[USB_GADGET_SERIAL_IDX].id;
config.label = strings_dev[STRING_DESCRIPTION_IDX].s;
config.iConfiguration = strings_dev[STRING_DESCRIPTION_IDX].id;
diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
index 126d76e8bb..2516676f86 100644
--- a/drivers/usb/gadget/udc-core.c
+++ b/drivers/usb/gadget/udc-core.c
@@ -212,6 +212,9 @@ int usb_add_gadget_udc_release(struct device_d *parent, struct usb_gadget *gadge
gadget->productname = xstrdup(barebox_get_model());
dev_add_param_string(&gadget->dev, "productname", NULL, NULL,
&gadget->productname, NULL);
+ gadget->serialnumber = xstrdup("");
+ dev_add_param_string(&gadget->dev, "serialnumber", NULL, NULL,
+ &gadget->serialnumber, NULL);
dev_set_name(&udc->dev, "udc");
udc->dev.id = DEVICE_ID_DYNAMIC;
diff --git a/include/usb/gadget.h b/include/usb/gadget.h
index afa11b2d9d..3e1d7153dc 100644
--- a/include/usb/gadget.h
+++ b/include/usb/gadget.h
@@ -561,6 +561,7 @@ struct usb_gadget {
uint32_t product_id;
char *manufacturer;
char *productname;
+ char *serialnumber;
};
#define work_to_gadget(w) (container_of((w), struct usb_gadget, work))