usb: gadget: add max_speed to usb_composite_driver
This field is used by the Gadget drivers to specify the maximum speed they support, meaning: the maximum speed they can provide descriptors for. The driver speed will be set in consideration of this value. [ balbi@ti.com : dropped the ifdeffery ] Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org> Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
9ea35331d0
Коммит
35a0e0bf6f
|
@ -165,6 +165,7 @@ static struct usb_composite_driver audio_driver = {
|
|||
.name = "g_audio",
|
||||
.dev = &device_desc,
|
||||
.strings = audio_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = __exit_p(audio_unbind),
|
||||
};
|
||||
|
||||
|
|
|
@ -244,6 +244,7 @@ static struct usb_composite_driver cdc_driver = {
|
|||
.name = "g_cdc",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = __exit_p(cdc_unbind),
|
||||
};
|
||||
|
||||
|
|
|
@ -1386,6 +1386,8 @@ int usb_composite_probe(struct usb_composite_driver *driver,
|
|||
driver->iProduct = driver->name;
|
||||
composite_driver.function = (char *) driver->name;
|
||||
composite_driver.driver.name = driver->name;
|
||||
composite_driver.speed = min((u8)composite_driver.speed,
|
||||
(u8)driver->max_speed);
|
||||
composite = driver;
|
||||
composite_gadget_bind = bind;
|
||||
|
||||
|
|
|
@ -401,6 +401,7 @@ static struct usb_composite_driver eth_driver = {
|
|||
.name = "g_ether",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = __exit_p(eth_unbind),
|
||||
};
|
||||
|
||||
|
|
|
@ -162,6 +162,7 @@ static struct usb_composite_driver gfs_driver = {
|
|||
.name = DRIVER_NAME,
|
||||
.dev = &gfs_dev_desc,
|
||||
.strings = gfs_dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = gfs_unbind,
|
||||
.iProduct = DRIVER_DESC,
|
||||
};
|
||||
|
|
|
@ -255,6 +255,7 @@ static struct usb_composite_driver hidg_driver = {
|
|||
.name = "g_hid",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = __exit_p(hid_unbind),
|
||||
};
|
||||
|
||||
|
|
|
@ -169,6 +169,7 @@ static struct usb_composite_driver msg_driver = {
|
|||
.name = "g_mass_storage",
|
||||
.dev = &msg_device_desc,
|
||||
.iProduct = DRIVER_DESC,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.needs_serial = 1,
|
||||
};
|
||||
|
||||
|
|
|
@ -351,6 +351,7 @@ static struct usb_composite_driver multi_driver = {
|
|||
.name = "g_multi",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = __exit_p(multi_unbind),
|
||||
.iProduct = DRIVER_DESC,
|
||||
.needs_serial = 1,
|
||||
|
|
|
@ -228,6 +228,7 @@ static struct usb_composite_driver ncm_driver = {
|
|||
.name = "g_ncm",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = __exit_p(gncm_unbind),
|
||||
};
|
||||
|
||||
|
|
|
@ -241,6 +241,7 @@ static struct usb_composite_driver nokia_driver = {
|
|||
.name = "g_nokia",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = __exit_p(nokia_unbind),
|
||||
};
|
||||
|
||||
|
|
|
@ -242,6 +242,7 @@ static struct usb_composite_driver gserial_driver = {
|
|||
.name = "g_serial",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
};
|
||||
|
||||
static int __init init(void)
|
||||
|
|
|
@ -373,6 +373,7 @@ static struct usb_composite_driver webcam_driver = {
|
|||
.name = "g_webcam",
|
||||
.dev = &webcam_device_descriptor,
|
||||
.strings = webcam_device_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = webcam_unbind,
|
||||
};
|
||||
|
||||
|
|
|
@ -340,6 +340,7 @@ static struct usb_composite_driver zero_driver = {
|
|||
.name = "zero",
|
||||
.dev = &device_desc,
|
||||
.strings = dev_strings,
|
||||
.max_speed = USB_SPEED_HIGH,
|
||||
.unbind = zero_unbind,
|
||||
.suspend = zero_suspend,
|
||||
.resume = zero_resume,
|
||||
|
|
|
@ -240,6 +240,7 @@ int usb_add_config(struct usb_composite_dev *,
|
|||
* identifiers.
|
||||
* @strings: tables of strings, keyed by identifiers assigned during bind()
|
||||
* and language IDs provided in control requests
|
||||
* @max_speed: Highest speed the driver supports.
|
||||
* @needs_serial: set to 1 if the gadget needs userspace to provide
|
||||
* a serial number. If one is not provided, warning will be printed.
|
||||
* @unbind: Reverses bind; called as a side effect of unregistering
|
||||
|
@ -267,6 +268,7 @@ struct usb_composite_driver {
|
|||
const char *iManufacturer;
|
||||
const struct usb_device_descriptor *dev;
|
||||
struct usb_gadget_strings **strings;
|
||||
enum usb_device_speed max_speed;
|
||||
unsigned needs_serial:1;
|
||||
|
||||
int (*unbind)(struct usb_composite_dev *);
|
||||
|
|
Загрузка…
Ссылка в новой задаче