mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-06 06:37:59 +00:00
usb: gadget: remove string override from struct usb_composite_driver
The struct usb_composite_driver members iProduct, iSerial and iManufacturer can be entered directly via the string array. There is no need for them to appear here. Acked-by: Michal Nazarewicz <mina86@mina86.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
2d35ee47aa
commit
d33f74fce3
5 changed files with 13 additions and 40 deletions
|
@ -904,11 +904,7 @@ static int get_string(struct usb_composite_dev *cdev,
|
||||||
* check if the string has not been overridden.
|
* check if the string has not been overridden.
|
||||||
*/
|
*/
|
||||||
if (cdev->manufacturer_override == id)
|
if (cdev->manufacturer_override == id)
|
||||||
str = composite->iManufacturer ?: composite_manufacturer;
|
str = composite_manufacturer;
|
||||||
else if (cdev->product_override == id)
|
|
||||||
str = composite->iProduct;
|
|
||||||
else if (cdev->serial_override == id)
|
|
||||||
str = composite->iSerialNumber;
|
|
||||||
else
|
else
|
||||||
str = NULL;
|
str = NULL;
|
||||||
if (str) {
|
if (str) {
|
||||||
|
@ -1483,26 +1479,17 @@ static int composite_bind(struct usb_gadget *gadget,
|
||||||
|
|
||||||
/* string overrides */
|
/* string overrides */
|
||||||
if (!cdev->desc.iManufacturer) {
|
if (!cdev->desc.iManufacturer) {
|
||||||
if (!composite->iManufacturer)
|
snprintf(composite_manufacturer,
|
||||||
snprintf(composite_manufacturer,
|
sizeof composite_manufacturer,
|
||||||
sizeof composite_manufacturer,
|
"%s %s with %s",
|
||||||
"%s %s with %s",
|
init_utsname()->sysname,
|
||||||
init_utsname()->sysname,
|
init_utsname()->release,
|
||||||
init_utsname()->release,
|
gadget->name);
|
||||||
gadget->name);
|
|
||||||
|
|
||||||
cdev->manufacturer_override =
|
cdev->manufacturer_override =
|
||||||
override_id(cdev, &cdev->desc.iManufacturer);
|
override_id(cdev, &cdev->desc.iManufacturer);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cdev->desc.iProduct && composite->iProduct)
|
|
||||||
cdev->product_override =
|
|
||||||
override_id(cdev, &cdev->desc.iProduct);
|
|
||||||
|
|
||||||
if (composite->iSerialNumber)
|
|
||||||
cdev->serial_override =
|
|
||||||
override_id(cdev, &cdev->desc.iSerialNumber);
|
|
||||||
|
|
||||||
/* has userspace failed to provide a serial number? */
|
/* has userspace failed to provide a serial number? */
|
||||||
if (composite->needs_serial && !cdev->desc.iSerialNumber)
|
if (composite->needs_serial && !cdev->desc.iSerialNumber)
|
||||||
WARNING(cdev, "userspace failed to provide iSerialNumber\n");
|
WARNING(cdev, "userspace failed to provide iSerialNumber\n");
|
||||||
|
@ -1619,8 +1606,6 @@ int usb_composite_probe(struct usb_composite_driver *driver)
|
||||||
|
|
||||||
if (!driver->name)
|
if (!driver->name)
|
||||||
driver->name = "composite";
|
driver->name = "composite";
|
||||||
if (!driver->iProduct)
|
|
||||||
driver->iProduct = driver->name;
|
|
||||||
|
|
||||||
driver->gadget_driver = composite_driver_template;
|
driver->gadget_driver = composite_driver_template;
|
||||||
gadget_driver = &driver->gadget_driver;
|
gadget_driver = &driver->gadget_driver;
|
||||||
|
|
|
@ -117,7 +117,7 @@ static const struct usb_descriptor_header *gfs_otg_desc[] = {
|
||||||
/* String IDs are assigned dynamically */
|
/* String IDs are assigned dynamically */
|
||||||
static struct usb_string gfs_strings[] = {
|
static struct usb_string gfs_strings[] = {
|
||||||
[USB_GADGET_MANUFACTURER_IDX].s = "",
|
[USB_GADGET_MANUFACTURER_IDX].s = "",
|
||||||
[USB_GADGET_PRODUCT_IDX].s = "",
|
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
|
||||||
[USB_GADGET_SERIAL_IDX].s = "",
|
[USB_GADGET_SERIAL_IDX].s = "",
|
||||||
#ifdef CONFIG_USB_FUNCTIONFS_RNDIS
|
#ifdef CONFIG_USB_FUNCTIONFS_RNDIS
|
||||||
{ .s = "FunctionFS + RNDIS" },
|
{ .s = "FunctionFS + RNDIS" },
|
||||||
|
@ -172,7 +172,6 @@ static __refdata struct usb_composite_driver gfs_driver = {
|
||||||
.max_speed = USB_SPEED_HIGH,
|
.max_speed = USB_SPEED_HIGH,
|
||||||
.bind = gfs_bind,
|
.bind = gfs_bind,
|
||||||
.unbind = gfs_unbind,
|
.unbind = gfs_unbind,
|
||||||
.iProduct = DRIVER_DESC,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static DEFINE_MUTEX(gfs_lock);
|
static DEFINE_MUTEX(gfs_lock);
|
||||||
|
@ -360,6 +359,7 @@ static int gfs_bind(struct usb_composite_dev *cdev)
|
||||||
ret = usb_string_ids_tab(cdev, gfs_strings);
|
ret = usb_string_ids_tab(cdev, gfs_strings);
|
||||||
if (unlikely(ret < 0))
|
if (unlikely(ret < 0))
|
||||||
goto error;
|
goto error;
|
||||||
|
gfs_dev_desc.iProduct = gfs_strings[USB_GADGET_PRODUCT_IDX].id;
|
||||||
|
|
||||||
for (i = func_num; --i; ) {
|
for (i = func_num; --i; ) {
|
||||||
ret = functionfs_bind(ffs_tab[i].ffs_data, cdev);
|
ret = functionfs_bind(ffs_tab[i].ffs_data, cdev);
|
||||||
|
|
|
@ -85,7 +85,7 @@ static const struct usb_descriptor_header *otg_desc[] = {
|
||||||
|
|
||||||
static struct usb_string strings_dev[] = {
|
static struct usb_string strings_dev[] = {
|
||||||
[USB_GADGET_MANUFACTURER_IDX].s = "",
|
[USB_GADGET_MANUFACTURER_IDX].s = "",
|
||||||
[USB_GADGET_PRODUCT_IDX].s = "",
|
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
|
||||||
[USB_GADGET_SERIAL_IDX].s = "",
|
[USB_GADGET_SERIAL_IDX].s = "",
|
||||||
{ } /* end of list */
|
{ } /* end of list */
|
||||||
};
|
};
|
||||||
|
@ -160,6 +160,7 @@ static int __init msg_bind(struct usb_composite_dev *cdev)
|
||||||
status = usb_string_ids_tab(cdev, strings_dev);
|
status = usb_string_ids_tab(cdev, strings_dev);
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
return status;
|
return status;
|
||||||
|
msg_device_desc.iProduct = strings_dev[USB_GADGET_PRODUCT_IDX].id;
|
||||||
|
|
||||||
status = usb_add_config(cdev, &msg_config_driver, msg_do_config);
|
status = usb_add_config(cdev, &msg_config_driver, msg_do_config);
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
|
@ -177,7 +178,6 @@ static int __init msg_bind(struct usb_composite_dev *cdev)
|
||||||
static __refdata struct usb_composite_driver msg_driver = {
|
static __refdata struct usb_composite_driver msg_driver = {
|
||||||
.name = "g_mass_storage",
|
.name = "g_mass_storage",
|
||||||
.dev = &msg_device_desc,
|
.dev = &msg_device_desc,
|
||||||
.iProduct = DRIVER_DESC,
|
|
||||||
.max_speed = USB_SPEED_SUPER,
|
.max_speed = USB_SPEED_SUPER,
|
||||||
.needs_serial = 1,
|
.needs_serial = 1,
|
||||||
.strings = dev_strings,
|
.strings = dev_strings,
|
||||||
|
|
|
@ -115,7 +115,7 @@ enum {
|
||||||
|
|
||||||
static struct usb_string strings_dev[] = {
|
static struct usb_string strings_dev[] = {
|
||||||
[USB_GADGET_MANUFACTURER_IDX].s = "",
|
[USB_GADGET_MANUFACTURER_IDX].s = "",
|
||||||
[USB_GADGET_PRODUCT_IDX].s = "",
|
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
|
||||||
[USB_GADGET_SERIAL_IDX].s = "",
|
[USB_GADGET_SERIAL_IDX].s = "",
|
||||||
[MULTI_STRING_RNDIS_CONFIG_IDX].s = "Multifunction with RNDIS",
|
[MULTI_STRING_RNDIS_CONFIG_IDX].s = "Multifunction with RNDIS",
|
||||||
[MULTI_STRING_CDC_CONFIG_IDX].s = "Multifunction with CDC ECM",
|
[MULTI_STRING_CDC_CONFIG_IDX].s = "Multifunction with CDC ECM",
|
||||||
|
@ -293,6 +293,7 @@ static int __ref multi_bind(struct usb_composite_dev *cdev)
|
||||||
status = usb_string_ids_tab(cdev, strings_dev);
|
status = usb_string_ids_tab(cdev, strings_dev);
|
||||||
if (unlikely(status < 0))
|
if (unlikely(status < 0))
|
||||||
goto fail2;
|
goto fail2;
|
||||||
|
device_desc.iProduct = strings_dev[USB_GADGET_PRODUCT_IDX].id;
|
||||||
|
|
||||||
/* register configurations */
|
/* register configurations */
|
||||||
status = rndis_config_register(cdev);
|
status = rndis_config_register(cdev);
|
||||||
|
@ -338,7 +339,6 @@ static __refdata struct usb_composite_driver multi_driver = {
|
||||||
.max_speed = USB_SPEED_HIGH,
|
.max_speed = USB_SPEED_HIGH,
|
||||||
.bind = multi_bind,
|
.bind = multi_bind,
|
||||||
.unbind = __exit_p(multi_unbind),
|
.unbind = __exit_p(multi_unbind),
|
||||||
.iProduct = DRIVER_DESC,
|
|
||||||
.needs_serial = 1,
|
.needs_serial = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -259,13 +259,6 @@ enum {
|
||||||
/**
|
/**
|
||||||
* struct usb_composite_driver - groups configurations into a gadget
|
* struct usb_composite_driver - groups configurations into a gadget
|
||||||
* @name: For diagnostics, identifies the driver.
|
* @name: For diagnostics, identifies the driver.
|
||||||
* @iProduct: Used as iProduct override if @dev->iProduct is not set.
|
|
||||||
* If NULL value of @name is taken.
|
|
||||||
* @iManufacturer: Used as iManufacturer override if @dev->iManufacturer is
|
|
||||||
* not set. If NULL a default "<system> <release> with <udc>" value
|
|
||||||
* will be used.
|
|
||||||
* @iSerialNumber: Used as iSerialNumber override if @dev->iSerialNumber is
|
|
||||||
* not set.
|
|
||||||
* @dev: Template descriptor for the device, including default device
|
* @dev: Template descriptor for the device, including default device
|
||||||
* identifiers.
|
* identifiers.
|
||||||
* @strings: tables of strings, keyed by identifiers assigned during @bind
|
* @strings: tables of strings, keyed by identifiers assigned during @bind
|
||||||
|
@ -300,9 +293,6 @@ enum {
|
||||||
*/
|
*/
|
||||||
struct usb_composite_driver {
|
struct usb_composite_driver {
|
||||||
const char *name;
|
const char *name;
|
||||||
const char *iProduct;
|
|
||||||
const char *iManufacturer;
|
|
||||||
const char *iSerialNumber;
|
|
||||||
const struct usb_device_descriptor *dev;
|
const struct usb_device_descriptor *dev;
|
||||||
struct usb_gadget_strings **strings;
|
struct usb_gadget_strings **strings;
|
||||||
enum usb_device_speed max_speed;
|
enum usb_device_speed max_speed;
|
||||||
|
@ -369,8 +359,6 @@ struct usb_composite_dev {
|
||||||
struct usb_composite_driver *driver;
|
struct usb_composite_driver *driver;
|
||||||
u8 next_string_id;
|
u8 next_string_id;
|
||||||
u8 manufacturer_override;
|
u8 manufacturer_override;
|
||||||
u8 product_override;
|
|
||||||
u8 serial_override;
|
|
||||||
|
|
||||||
/* the gadget driver won't enable the data pullup
|
/* the gadget driver won't enable the data pullup
|
||||||
* while the deactivation count is nonzero.
|
* while the deactivation count is nonzero.
|
||||||
|
|
Loading…
Add table
Reference in a new issue