lkml.org 
[lkml]   [2011]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH/RESEND v15 4/10] usb: Add max_speed to usb_composite_driver structure
    Date
    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.

    Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>

    ---
    drivers/usb/gadget/audio.c | 5 +++++
    drivers/usb/gadget/cdc2.c | 5 +++++
    drivers/usb/gadget/composite.c | 2 ++
    drivers/usb/gadget/ether.c | 5 +++++
    drivers/usb/gadget/g_ffs.c | 5 +++++
    drivers/usb/gadget/hid.c | 5 +++++
    drivers/usb/gadget/mass_storage.c | 5 +++++
    drivers/usb/gadget/multi.c | 5 +++++
    drivers/usb/gadget/ncm.c | 5 +++++
    drivers/usb/gadget/nokia.c | 5 +++++
    drivers/usb/gadget/serial.c | 5 +++++
    drivers/usb/gadget/webcam.c | 5 +++++
    drivers/usb/gadget/zero.c | 5 +++++
    include/linux/usb/composite.h | 2 ++
    14 files changed, 64 insertions(+), 0 deletions(-)

    diff --git a/drivers/usb/gadget/audio.c b/drivers/usb/gadget/audio.c
    index 93b999e..0d7f0ae 100644
    --- a/drivers/usb/gadget/audio.c
    +++ b/drivers/usb/gadget/audio.c
    @@ -165,6 +165,11 @@ static struct usb_composite_driver audio_driver = {
    .name = "g_audio",
    .dev = &device_desc,
    .strings = audio_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = __exit_p(audio_unbind),
    };

    diff --git a/drivers/usb/gadget/cdc2.c b/drivers/usb/gadget/cdc2.c
    index 2720ab0..6dda4ee 100644
    --- a/drivers/usb/gadget/cdc2.c
    +++ b/drivers/usb/gadget/cdc2.c
    @@ -244,6 +244,11 @@ static struct usb_composite_driver cdc_driver = {
    .name = "g_cdc",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = __exit_p(cdc_unbind),
    };

    diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
    index 1c6bd66..15e9bc9 100644
    --- a/drivers/usb/gadget/composite.c
    +++ b/drivers/usb/gadget/composite.c
    @@ -1378,6 +1378,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;

    diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
    index 1690c9d..fa7c5ab 100644
    --- a/drivers/usb/gadget/ether.c
    +++ b/drivers/usb/gadget/ether.c
    @@ -401,6 +401,11 @@ static struct usb_composite_driver eth_driver = {
    .name = "g_ether",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = __exit_p(eth_unbind),
    };

    diff --git a/drivers/usb/gadget/g_ffs.c b/drivers/usb/gadget/g_ffs.c
    index ebf6970..7b272c6 100644
    --- a/drivers/usb/gadget/g_ffs.c
    +++ b/drivers/usb/gadget/g_ffs.c
    @@ -162,6 +162,11 @@ static struct usb_composite_driver gfs_driver = {
    .name = DRIVER_NAME,
    .dev = &gfs_dev_desc,
    .strings = gfs_dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = gfs_unbind,
    .iProduct = DRIVER_DESC,
    };
    diff --git a/drivers/usb/gadget/hid.c b/drivers/usb/gadget/hid.c
    index 2523e54..c6e133f 100644
    --- a/drivers/usb/gadget/hid.c
    +++ b/drivers/usb/gadget/hid.c
    @@ -255,6 +255,11 @@ static struct usb_composite_driver hidg_driver = {
    .name = "g_hid",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = __exit_p(hid_unbind),
    };

    diff --git a/drivers/usb/gadget/mass_storage.c b/drivers/usb/gadget/mass_storage.c
    index 0182242..b399195 100644
    --- a/drivers/usb/gadget/mass_storage.c
    +++ b/drivers/usb/gadget/mass_storage.c
    @@ -169,6 +169,11 @@ static struct usb_composite_driver msg_driver = {
    .name = "g_mass_storage",
    .dev = &msg_device_desc,
    .iProduct = DRIVER_DESC,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .needs_serial = 1,
    };

    diff --git a/drivers/usb/gadget/multi.c b/drivers/usb/gadget/multi.c
    index d9feced..b4a000e 100644
    --- a/drivers/usb/gadget/multi.c
    +++ b/drivers/usb/gadget/multi.c
    @@ -351,6 +351,11 @@ static struct usb_composite_driver multi_driver = {
    .name = "g_multi",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = __exit_p(multi_unbind),
    .iProduct = DRIVER_DESC,
    .needs_serial = 1,
    diff --git a/drivers/usb/gadget/ncm.c b/drivers/usb/gadget/ncm.c
    index 99c179a..8665a0e 100644
    --- a/drivers/usb/gadget/ncm.c
    +++ b/drivers/usb/gadget/ncm.c
    @@ -228,6 +228,11 @@ static struct usb_composite_driver ncm_driver = {
    .name = "g_ncm",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = __exit_p(gncm_unbind),
    };

    diff --git a/drivers/usb/gadget/nokia.c b/drivers/usb/gadget/nokia.c
    index 55ca63a..192d6dd 100644
    --- a/drivers/usb/gadget/nokia.c
    +++ b/drivers/usb/gadget/nokia.c
    @@ -241,6 +241,11 @@ static struct usb_composite_driver nokia_driver = {
    .name = "g_nokia",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = __exit_p(nokia_unbind),
    };

    diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c
    index 1ac57a9..645b4f5 100644
    --- a/drivers/usb/gadget/serial.c
    +++ b/drivers/usb/gadget/serial.c
    @@ -242,6 +242,11 @@ static struct usb_composite_driver gserial_driver = {
    .name = "g_serial",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    };

    static int __init init(void)
    diff --git a/drivers/usb/gadget/webcam.c b/drivers/usb/gadget/webcam.c
    index a5a0fdb..4533704 100644
    --- a/drivers/usb/gadget/webcam.c
    +++ b/drivers/usb/gadget/webcam.c
    @@ -373,6 +373,11 @@ static struct usb_composite_driver webcam_driver = {
    .name = "g_webcam",
    .dev = &webcam_device_descriptor,
    .strings = webcam_device_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = webcam_unbind,
    };

    diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
    index 6d16db9..30abd95 100644
    --- a/drivers/usb/gadget/zero.c
    +++ b/drivers/usb/gadget/zero.c
    @@ -340,6 +340,11 @@ static struct usb_composite_driver zero_driver = {
    .name = "zero",
    .dev = &device_desc,
    .strings = dev_strings,
    +#ifdef CONFIG_USB_GADGET_DUALSPEED
    + .max_speed = USB_SPEED_HIGH,
    +#else
    + .max_speed = USB_SPEED_FULL,
    +#endif /* CONFIG_USB_GADGET_DUALSPEED */
    .unbind = zero_unbind,
    .suspend = zero_suspend,
    .resume = zero_resume,
    diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h
    index 99830d6..a3e72df 100644
    --- a/include/linux/usb/composite.h
    +++ b/include/linux/usb/composite.h
    @@ -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 *);
    --
    1.7.3.3
    --
    Sent by an employee of the Qualcomm Innovation Center, Inc.
    The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


    \
     
     \ /
      Last update: 2011-06-06 13:45    [W:0.040 / U:65.516 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site