• Michal Nazarewicz's avatar
    USB: gadget: composite: Better string override handling · ad1a8102
    Michal Nazarewicz authored
    The iManufatcurer, iProduct and iSerialNumber composite module
    parameters were only used when the gadget driver registers
    strings for manufacturer, product and serial number.  If the
    gadget never bothered to set corresponding fields in USB device
    descriptors those module parameters are ignored.
    
    This commit makes the parameters work even if the strings ID
    have not been assigned.  It also changes the way IDs are
    overridden -- what IDs are overridden is now saved in
    usb_composite_dev structure -- which makes it unnecessary to
    modify the string tables the way previous code did.
    
    The commit also adds a iProduct and iManufatcurer fields to the
    usb_composite_device structure.  If they are set, appropriate
    strings are reserved and added to device descriptor.  This makes
    it unnecessary for gadget drivers to maintain code for setting
    those.  If iProduct is not set it defaults to
    usb_composite_device::name; if iManufatcurer is not set
    a default "<system> <release> with <gadget-name>" is used.
    
    The last thing is that if needs_serial field of
    usb_composite_device is set and user failed to provided
    iSerialNumber parameter a warning is issued.
    Signed-off-by: default avatarMichal Nazarewicz <m.nazarewicz@samsung.com>
    Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    ad1a8102
composite.c 34.2 KB