lkml.org 
[lkml]   [2010]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[33/54] USB delay init quirk for logitech Harmony 700-series devices
    2.6.34-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Phil Dibowitz <phil@ipom.com>

    commit 93362a875fc69881ae69299efaf19a55a1f57db0 upstream.

    The Logitech Harmony 700 series needs an extra delay during
    initialization. This patch adds a USB quirk which enables such a delay
    and adds the device to the quirks list.

    Signed-off-by: Phil Dibowitz <phil@ipom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/usb/core/hub.c | 6 +++++-
    drivers/usb/core/quirks.c | 3 +++
    include/linux/usb/quirks.h | 4 ++++
    3 files changed, 12 insertions(+), 1 deletion(-)

    --- a/drivers/usb/core/hub.c
    +++ b/drivers/usb/core/hub.c
    @@ -23,6 +23,7 @@
    #include <linux/mutex.h>
    #include <linux/freezer.h>
    #include <linux/pm_runtime.h>
    +#include <linux/usb/quirks.h>

    #include <asm/uaccess.h>
    #include <asm/byteorder.h>
    @@ -1790,7 +1791,6 @@ int usb_new_device(struct usb_device *ud
    pm_runtime_set_active(&udev->dev);
    pm_runtime_enable(&udev->dev);

    - usb_detect_quirks(udev);
    err = usb_enumerate_device(udev); /* Read descriptors */
    if (err < 0)
    goto fail;
    @@ -3100,6 +3100,10 @@ static void hub_port_connect_change(stru
    if (status < 0)
    goto loop;

    + usb_detect_quirks(udev);
    + if (udev->quirks & USB_QUIRK_DELAY_INIT)
    + msleep(1000);
    +
    /* consecutive bus-powered hubs aren't reliable; they can
    * violate the voltage drop budget. if the new child has
    * a "powered" LED, users should notice we didn't enable it
    --- a/drivers/usb/core/quirks.c
    +++ b/drivers/usb/core/quirks.c
    @@ -38,6 +38,9 @@ static const struct usb_device_id usb_qu
    /* Creative SB Audigy 2 NX */
    { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },

    + /* Logitech Harmony 700-series */
    + { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
    +
    /* Philips PSC805 audio device */
    { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME },

    --- a/include/linux/usb/quirks.h
    +++ b/include/linux/usb/quirks.h
    @@ -22,4 +22,8 @@
    /*device will morph if reset, don't use reset for handling errors */
    #define USB_QUIRK_RESET_MORPHS 0x00000010

    +/* device needs a pause during initialization, after we read the device
    + descriptor */
    +#define USB_QUIRK_DELAY_INIT 0x00000040
    +
    #endif /* __LINUX_USB_QUIRKS_H */



    \
     
     \ /
      Last update: 2010-08-12 02:07    [W:4.053 / U:0.412 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site