USB: gadget: composite: Better string override handling
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / linux / usb / composite.h
index 6170681..a78e813 100644 (file)
@@ -237,10 +237,17 @@ int usb_add_config(struct usb_composite_dev *,
 /**
  * struct usb_composite_driver - groups configurations into a gadget
  * @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.
  * @dev: Template descriptor for the device, including default device
  *     identifiers.
  * @strings: tables of strings, keyed by identifiers assigned during bind()
  *     and language IDs provided in control requests
+ * @needs_serial: set to 1 if the gadget needs userspace to provide
+ *     a serial number.  If one is not provided, warning will be printed.
  * @bind: (REQUIRED) Used to allocate resources that are shared across the
  *     whole device, such as string IDs, and add its configurations using
  *     @usb_add_config().  This may fail by returning a negative errno
@@ -266,8 +273,11 @@ int usb_add_config(struct usb_composite_dev *,
  */
 struct usb_composite_driver {
        const char                              *name;
+       const char                              *iProduct;
+       const char                              *iManufacturer;
        const struct usb_device_descriptor      *dev;
        struct usb_gadget_strings               **strings;
+       unsigned                needs_serial:1;
 
        /* REVISIT:  bind() functions can be marked __init, which
         * makes trouble for section mismatch analysis.  See if
@@ -334,6 +344,9 @@ struct usb_composite_dev {
        struct list_head                configs;
        struct usb_composite_driver     *driver;
        u8                              next_string_id;
+       u8                              manufacturer_override;
+       u8                              product_override;
+       u8                              serial_override;
 
        /* the gadget driver won't enable the data pullup
         * while the deactivation count is nonzero.