提交 cc2683c3 编写于 作者: S Sebastian Andrzej Siewior 提交者: Felipe Balbi

usb: gadget: Provide a default implementation of default manufacturer string

Some gadgets provide custom entry here. Some may override it with an
etntry that is also created by composite if there was no value sumbitted
at all.
This patch removes all "custom manufacturer" strings which are the same
as these which are created by composite. Then it moves the creation of
the default manufacturer string to usb_composite_overwrite_options() in
case no command line argument has been used and the entry is still an
empty string.
By doing this we get rid of the global variable "composite_manufacturer"
in composite.
Acked-by: NMichal Nazarewicz <mina86@mina86.com>
Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: NFelipe Balbi <balbi@ti.com>
上级 d33f74fc
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include "u_serial.h" #include "u_serial.h"
...@@ -87,13 +86,9 @@ static const struct usb_descriptor_header *otg_desc[] = { ...@@ -87,13 +86,9 @@ static const struct usb_descriptor_header *otg_desc[] = {
NULL, NULL,
}; };
/* string IDs are assigned dynamically */ /* string IDs are assigned dynamically */
static char manufacturer[50];
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC, [USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
[USB_GADGET_SERIAL_IDX].s = "", [USB_GADGET_SERIAL_IDX].s = "",
{ } /* end of list */ { } /* end of list */
...@@ -186,11 +181,6 @@ static int __init acm_ms_bind(struct usb_composite_dev *cdev) ...@@ -186,11 +181,6 @@ static int __init acm_ms_bind(struct usb_composite_dev *cdev)
* Allocate string descriptor numbers ... note that string * Allocate string descriptor numbers ... note that string
* contents can be overridden by the composite_dev glue. * contents can be overridden by the composite_dev glue.
*/ */
/* device descriptor strings: manufacturer, product */
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
status = usb_string_ids_tab(cdev, strings_dev); status = usb_string_ids_tab(cdev, strings_dev);
if (status < 0) if (status < 0)
goto fail1; goto fail1;
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
/* #define VERBOSE_DEBUG */ /* #define VERBOSE_DEBUG */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include <linux/usb/composite.h> #include <linux/usb/composite.h>
#include "gadget_chips.h" #include "gadget_chips.h"
...@@ -33,10 +32,8 @@ USB_GADGET_COMPOSITE_OPTIONS(); ...@@ -33,10 +32,8 @@ USB_GADGET_COMPOSITE_OPTIONS();
/* string IDs are assigned dynamically */ /* string IDs are assigned dynamically */
static char manufacturer[50];
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC, [USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
[USB_GADGET_SERIAL_IDX].s = "", [USB_GADGET_SERIAL_IDX].s = "",
{ } /* end of list */ { } /* end of list */
...@@ -161,10 +158,6 @@ static int __init audio_bind(struct usb_composite_dev *cdev) ...@@ -161,10 +158,6 @@ static int __init audio_bind(struct usb_composite_dev *cdev)
__constant_cpu_to_le16(0x0300 | 0x0099); __constant_cpu_to_le16(0x0300 | 0x0099);
} }
/* device descriptor strings: manufacturer, product */
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
cdev->gadget->name);
status = usb_string_ids_tab(cdev, strings_dev); status = usb_string_ids_tab(cdev, strings_dev);
if (status < 0) if (status < 0)
goto fail; goto fail;
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include <linux/module.h> #include <linux/module.h>
#include "u_ether.h" #include "u_ether.h"
...@@ -90,10 +89,8 @@ static const struct usb_descriptor_header *otg_desc[] = { ...@@ -90,10 +89,8 @@ static const struct usb_descriptor_header *otg_desc[] = {
/* string IDs are assigned dynamically */ /* string IDs are assigned dynamically */
static char manufacturer[50];
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC, [USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
[USB_GADGET_SERIAL_IDX].s = "", [USB_GADGET_SERIAL_IDX].s = "",
{ } /* end of list */ { } /* end of list */
...@@ -182,15 +179,10 @@ static int __init cdc_bind(struct usb_composite_dev *cdev) ...@@ -182,15 +179,10 @@ static int __init cdc_bind(struct usb_composite_dev *cdev)
cpu_to_le16(0x0300 | 0x0099); cpu_to_le16(0x0300 | 0x0099);
} }
/* Allocate string descriptor numbers ... note that string /* Allocate string descriptor numbers ... note that string
* contents can be overridden by the composite_dev glue. * contents can be overridden by the composite_dev glue.
*/ */
/* device descriptor strings: manufacturer, product */
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
status = usb_string_ids_tab(cdev, strings_dev); status = usb_string_ids_tab(cdev, strings_dev);
if (status < 0) if (status < 0)
goto fail1; goto fail1;
......
...@@ -28,9 +28,6 @@ ...@@ -28,9 +28,6 @@
* with the relevant device-wide data. * with the relevant device-wide data.
*/ */
static char composite_manufacturer[50];
/*-------------------------------------------------------------------------*/
/** /**
* next_ep_desc() - advance to the next EP descriptor * next_ep_desc() - advance to the next EP descriptor
* @t: currect pointer within descriptor array * @t: currect pointer within descriptor array
...@@ -860,7 +857,6 @@ static int get_string(struct usb_composite_dev *cdev, ...@@ -860,7 +857,6 @@ static int get_string(struct usb_composite_dev *cdev,
struct usb_configuration *c; struct usb_configuration *c;
struct usb_function *f; struct usb_function *f;
int len; int len;
const char *str;
/* Yes, not only is USB's I18N support probably more than most /* Yes, not only is USB's I18N support probably more than most
* folk will ever care about ... also, it's all supported here. * folk will ever care about ... also, it's all supported here.
...@@ -900,21 +896,6 @@ static int get_string(struct usb_composite_dev *cdev, ...@@ -900,21 +896,6 @@ static int get_string(struct usb_composite_dev *cdev,
return s->bLength; return s->bLength;
} }
/* Otherwise, look up and return a specified string. First
* check if the string has not been overridden.
*/
if (cdev->manufacturer_override == id)
str = composite_manufacturer;
else
str = NULL;
if (str) {
struct usb_gadget_strings strings = {
.language = language,
.strings = &(struct usb_string) { 0xff, str }
};
return usb_gadget_get_string(&strings, 0xff, buf);
}
/* String IDs are device-scoped, so we look up each string /* String IDs are device-scoped, so we look up each string
* table we're told about. These lookups are infrequent; * table we're told about. These lookups are infrequent;
* simpler-is-better here. * simpler-is-better here.
...@@ -1367,23 +1348,11 @@ composite_unbind(struct usb_gadget *gadget) ...@@ -1367,23 +1348,11 @@ composite_unbind(struct usb_gadget *gadget)
usb_ep_free_request(gadget->ep0, cdev->req); usb_ep_free_request(gadget->ep0, cdev->req);
} }
device_remove_file(&gadget->dev, &dev_attr_suspended); device_remove_file(&gadget->dev, &dev_attr_suspended);
kfree(cdev->def_manufacturer);
kfree(cdev); kfree(cdev);
set_gadget_data(gadget, NULL); set_gadget_data(gadget, NULL);
} }
static u8 override_id(struct usb_composite_dev *cdev, u8 *desc)
{
if (!*desc) {
int ret = usb_string_id(cdev);
if (unlikely(ret < 0))
WARNING(cdev, "failed to override string ID\n");
else
*desc = ret;
}
return *desc;
}
static void update_unchanged_dev_desc(struct usb_device_descriptor *new, static void update_unchanged_dev_desc(struct usb_device_descriptor *new,
const struct usb_device_descriptor *old) const struct usb_device_descriptor *old)
{ {
...@@ -1477,19 +1446,6 @@ static int composite_bind(struct usb_gadget *gadget, ...@@ -1477,19 +1446,6 @@ static int composite_bind(struct usb_gadget *gadget,
update_unchanged_dev_desc(&cdev->desc, composite->dev); update_unchanged_dev_desc(&cdev->desc, composite->dev);
/* string overrides */
if (!cdev->desc.iManufacturer) {
snprintf(composite_manufacturer,
sizeof composite_manufacturer,
"%s %s with %s",
init_utsname()->sysname,
init_utsname()->release,
gadget->name);
cdev->manufacturer_override =
override_id(cdev, &cdev->desc.iManufacturer);
}
/* 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");
...@@ -1665,6 +1621,22 @@ void usb_composite_setup_continue(struct usb_composite_dev *cdev) ...@@ -1665,6 +1621,22 @@ void usb_composite_setup_continue(struct usb_composite_dev *cdev)
spin_unlock_irqrestore(&cdev->lock, flags); spin_unlock_irqrestore(&cdev->lock, flags);
} }
static char *composite_default_mfr(struct usb_gadget *gadget)
{
char *mfr;
int len;
len = snprintf(NULL, 0, "%s %s with %s", init_utsname()->sysname,
init_utsname()->release, gadget->name);
len++;
mfr = kmalloc(len, GFP_KERNEL);
if (!mfr)
return NULL;
snprintf(mfr, len, "%s %s with %s", init_utsname()->sysname,
init_utsname()->release, gadget->name);
return mfr;
}
void usb_composite_overwrite_options(struct usb_composite_dev *cdev, void usb_composite_overwrite_options(struct usb_composite_dev *cdev,
struct usb_composite_overwrite *covr) struct usb_composite_overwrite *covr)
{ {
...@@ -1688,6 +1660,11 @@ void usb_composite_overwrite_options(struct usb_composite_dev *cdev, ...@@ -1688,6 +1660,11 @@ void usb_composite_overwrite_options(struct usb_composite_dev *cdev,
if (covr->manufacturer) { if (covr->manufacturer) {
desc->iManufacturer = dev_str[USB_GADGET_MANUFACTURER_IDX].id; desc->iManufacturer = dev_str[USB_GADGET_MANUFACTURER_IDX].id;
dev_str[USB_GADGET_MANUFACTURER_IDX].s = covr->manufacturer; dev_str[USB_GADGET_MANUFACTURER_IDX].s = covr->manufacturer;
} else if (!strlen(dev_str[USB_GADGET_MANUFACTURER_IDX].s)) {
desc->iManufacturer = dev_str[USB_GADGET_MANUFACTURER_IDX].id;
cdev->def_manufacturer = composite_default_mfr(cdev->gadget);
dev_str[USB_GADGET_MANUFACTURER_IDX].s = cdev->def_manufacturer;
} }
if (covr->product) { if (covr->product) {
......
...@@ -14,8 +14,6 @@ ...@@ -14,8 +14,6 @@
/* #define VERBOSE_DEBUG */ /* #define VERBOSE_DEBUG */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#if defined USB_ETH_RNDIS #if defined USB_ETH_RNDIS
# undef USB_ETH_RNDIS # undef USB_ETH_RNDIS
...@@ -193,11 +191,8 @@ static const struct usb_descriptor_header *otg_desc[] = { ...@@ -193,11 +191,8 @@ static const struct usb_descriptor_header *otg_desc[] = {
NULL, NULL,
}; };
/* string IDs are assigned dynamically */
static char manufacturer[50];
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = PREFIX DRIVER_DESC, [USB_GADGET_PRODUCT_IDX].s = PREFIX DRIVER_DESC,
[USB_GADGET_SERIAL_IDX].s = "", [USB_GADGET_SERIAL_IDX].s = "",
{ } /* end of list */ { } /* end of list */
...@@ -333,15 +328,10 @@ static int __init eth_bind(struct usb_composite_dev *cdev) ...@@ -333,15 +328,10 @@ static int __init eth_bind(struct usb_composite_dev *cdev)
cpu_to_le16(0x0300 | 0x0099); cpu_to_le16(0x0300 | 0x0099);
} }
/* Allocate string descriptor numbers ... note that string /* Allocate string descriptor numbers ... note that string
* contents can be overridden by the composite_dev glue. * contents can be overridden by the composite_dev glue.
*/ */
/* device descriptor strings: manufacturer, product */
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
status = usb_string_ids_tab(cdev, strings_dev); status = usb_string_ids_tab(cdev, strings_dev);
if (status < 0) if (status < 0)
goto fail; goto fail;
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/hid.h> #include <linux/hid.h>
#include <linux/cdev.h> #include <linux/cdev.h>
......
...@@ -213,7 +213,6 @@ ...@@ -213,7 +213,6 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/freezer.h> #include <linux/freezer.h>
#include <linux/utsname.h>
#include <linux/usb/ch9.h> #include <linux/usb/ch9.h>
#include <linux/usb/gadget.h> #include <linux/usb/gadget.h>
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/utsname.h>
#include <linux/device.h> #include <linux/device.h>
#include <sound/core.h> #include <sound/core.h>
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#define pr_fmt(fmt) "g_ffs: " fmt #define pr_fmt(fmt) "g_ffs: " fmt
#include <linux/module.h> #include <linux/module.h>
#include <linux/utsname.h>
/* /*
* kbuild is not very cooperative with respect to linking separately * kbuild is not very cooperative with respect to linking separately
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/utsname.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/device.h> #include <linux/device.h>
......
...@@ -91,10 +91,8 @@ static const struct usb_descriptor_header *otg_desc[] = { ...@@ -91,10 +91,8 @@ static const struct usb_descriptor_header *otg_desc[] = {
/* string IDs are assigned dynamically */ /* string IDs are assigned dynamically */
static char manufacturer[50];
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC, [USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
[USB_GADGET_SERIAL_IDX].s = "", [USB_GADGET_SERIAL_IDX].s = "",
{ } /* end of list */ { } /* end of list */
...@@ -165,16 +163,10 @@ static int __init hid_bind(struct usb_composite_dev *cdev) ...@@ -165,16 +163,10 @@ static int __init hid_bind(struct usb_composite_dev *cdev)
else else
device_desc.bcdDevice = cpu_to_le16(0x0300 | 0x0099); device_desc.bcdDevice = cpu_to_le16(0x0300 | 0x0099);
/* Allocate string descriptor numbers ... note that string /* Allocate string descriptor numbers ... note that string
* contents can be overridden by the composite_dev glue. * contents can be overridden by the composite_dev glue.
*/ */
/* device descriptor strings: manufacturer, product */
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
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;
......
...@@ -29,10 +29,8 @@ ...@@ -29,10 +29,8 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include <linux/usb/ch9.h> #include <linux/usb/ch9.h>
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
#define DRIVER_DESC "Mass Storage Gadget" #define DRIVER_DESC "Mass Storage Gadget"
......
...@@ -14,10 +14,8 @@ ...@@ -14,10 +14,8 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include <linux/module.h> #include <linux/module.h>
#if defined USB_ETH_RNDIS #if defined USB_ETH_RNDIS
# undef USB_ETH_RNDIS # undef USB_ETH_RNDIS
#endif #endif
......
...@@ -20,8 +20,6 @@ ...@@ -20,8 +20,6 @@
/* #define VERBOSE_DEBUG */ /* #define VERBOSE_DEBUG */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include "u_ether.h" #include "u_ether.h"
...@@ -95,12 +93,9 @@ static const struct usb_descriptor_header *otg_desc[] = { ...@@ -95,12 +93,9 @@ static const struct usb_descriptor_header *otg_desc[] = {
NULL, NULL,
}; };
/* string IDs are assigned dynamically */ /* string IDs are assigned dynamically */
static char manufacturer[50];
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC, [USB_GADGET_PRODUCT_IDX].s = DRIVER_DESC,
[USB_GADGET_SERIAL_IDX].s = "", [USB_GADGET_SERIAL_IDX].s = "",
{ } /* end of list */ { } /* end of list */
...@@ -169,15 +164,10 @@ static int __init gncm_bind(struct usb_composite_dev *cdev) ...@@ -169,15 +164,10 @@ static int __init gncm_bind(struct usb_composite_dev *cdev)
cpu_to_le16(0x0300 | 0x0099); cpu_to_le16(0x0300 | 0x0099);
} }
/* Allocate string descriptor numbers ... note that string /* Allocate string descriptor numbers ... note that string
* contents can be overridden by the composite_dev glue. * contents can be overridden by the composite_dev glue.
*/ */
/* device descriptor strings: manufacturer, product */
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
status = usb_string_ids_tab(cdev, strings_dev); status = usb_string_ids_tab(cdev, strings_dev);
if (status < 0) if (status < 0)
goto fail; goto fail;
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include <linux/device.h> #include <linux/device.h>
#include "u_serial.h" #include "u_serial.h"
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/utsname.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/fs.h> #include <linux/fs.h>
...@@ -237,7 +236,6 @@ static const struct usb_descriptor_header *otg_desc[] = { ...@@ -237,7 +236,6 @@ static const struct usb_descriptor_header *otg_desc[] = {
/* descriptors that are built on-demand */ /* descriptors that are built on-demand */
static char manufacturer [50];
static char product_desc [40] = DRIVER_DESC; static char product_desc [40] = DRIVER_DESC;
static char serial_num [40] = "1"; static char serial_num [40] = "1";
static char pnp_string [1024] = static char pnp_string [1024] =
...@@ -245,7 +243,7 @@ static char pnp_string [1024] = ...@@ -245,7 +243,7 @@ static char pnp_string [1024] =
/* static strings, in UTF-8 */ /* static strings, in UTF-8 */
static struct usb_string strings [] = { static struct usb_string strings [] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = product_desc, [USB_GADGET_PRODUCT_IDX].s = product_desc,
[USB_GADGET_SERIAL_IDX].s = serial_num, [USB_GADGET_SERIAL_IDX].s = serial_num,
{ } /* end of list */ { } /* end of list */
...@@ -1165,10 +1163,6 @@ static int __init printer_bind_config(struct usb_configuration *c) ...@@ -1165,10 +1163,6 @@ static int __init printer_bind_config(struct usb_configuration *c)
device_desc.bcdDevice = device_desc.bcdDevice =
cpu_to_le16(0xFFFF); cpu_to_le16(0xFFFF);
} }
snprintf(manufacturer, sizeof(manufacturer), "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
if (iPNPstring) if (iPNPstring)
strlcpy(&pnp_string[2], iPNPstring, (sizeof pnp_string)-2); strlcpy(&pnp_string[2], iPNPstring, (sizeof pnp_string)-2);
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/utsname.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/tty.h> #include <linux/tty.h>
#include <linux/tty_flip.h> #include <linux/tty_flip.h>
...@@ -61,10 +60,8 @@ USB_GADGET_COMPOSITE_OPTIONS(); ...@@ -61,10 +60,8 @@ USB_GADGET_COMPOSITE_OPTIONS();
#define STRING_DESCRIPTION_IDX USB_GADGET_FIRST_AVAIL_IDX #define STRING_DESCRIPTION_IDX USB_GADGET_FIRST_AVAIL_IDX
static char manufacturer[50];
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = GS_VERSION_NAME, [USB_GADGET_PRODUCT_IDX].s = GS_VERSION_NAME,
[USB_GADGET_SERIAL_IDX].s = "", [USB_GADGET_SERIAL_IDX].s = "",
[STRING_DESCRIPTION_IDX].s = NULL /* updated; f(use_acm) */, [STRING_DESCRIPTION_IDX].s = NULL /* updated; f(use_acm) */,
...@@ -171,10 +168,6 @@ static int __init gs_bind(struct usb_composite_dev *cdev) ...@@ -171,10 +168,6 @@ static int __init gs_bind(struct usb_composite_dev *cdev)
* contents can be overridden by the composite_dev glue. * contents can be overridden by the composite_dev glue.
*/ */
/* device description: manufacturer, product */
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
status = usb_string_ids_tab(cdev, strings_dev); status = usb_string_ids_tab(cdev, strings_dev);
if (status < 0) if (status < 0)
goto fail; goto fail;
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/utsname.h>
#include <linux/device.h> #include <linux/device.h>
#include "g_zero.h" #include "g_zero.h"
...@@ -139,13 +138,11 @@ const struct usb_descriptor_header *otg_desc[] = { ...@@ -139,13 +138,11 @@ const struct usb_descriptor_header *otg_desc[] = {
#endif #endif
/* string IDs are assigned dynamically */ /* string IDs are assigned dynamically */
static char manufacturer[50];
/* default serial number takes at least two packets */ /* default serial number takes at least two packets */
static char serial[] = "0123456789.0123456789.0123456789"; static char serial[] = "0123456789.0123456789.0123456789";
static struct usb_string strings_dev[] = { static struct usb_string strings_dev[] = {
[USB_GADGET_MANUFACTURER_IDX].s = manufacturer, [USB_GADGET_MANUFACTURER_IDX].s = "",
[USB_GADGET_PRODUCT_IDX].s = longname, [USB_GADGET_PRODUCT_IDX].s = longname,
[USB_GADGET_SERIAL_IDX].s = serial, [USB_GADGET_SERIAL_IDX].s = serial,
{ } /* end of list */ { } /* end of list */
...@@ -305,10 +302,6 @@ static int __init zero_bind(struct usb_composite_dev *cdev) ...@@ -305,10 +302,6 @@ static int __init zero_bind(struct usb_composite_dev *cdev)
INFO(cdev, "%s, version: " DRIVER_VERSION "\n", longname); INFO(cdev, "%s, version: " DRIVER_VERSION "\n", longname);
snprintf(manufacturer, sizeof manufacturer, "%s %s with %s",
init_utsname()->sysname, init_utsname()->release,
gadget->name);
return 0; return 0;
} }
......
...@@ -358,7 +358,7 @@ struct usb_composite_dev { ...@@ -358,7 +358,7 @@ struct usb_composite_dev {
struct list_head configs; struct list_head configs;
struct usb_composite_driver *driver; struct usb_composite_driver *driver;
u8 next_string_id; u8 next_string_id;
u8 manufacturer_override; char *def_manufacturer;
/* 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.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册