summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2007-08-20 14:48:05 (GMT)
committerGreg Kroah-Hartman <gregkh@suse.de>2007-09-13 12:49:04 (GMT)
commit7d2c592609a7da950b458403f1936d382f38ff9c (patch)
tree4bff63e224c2911c8cbe309b22c0cacdaa72addd
parentc87ce65868bbf9bbea9c3f112ff8315302daf8f2 (diff)
downloadlinux-7d2c592609a7da950b458403f1936d382f38ff9c.tar.xz
USB: disable autosuspend by default for non-hubs
This patch (as965) disables autosuspend by default for all USB devices other than hubs. We are seeing too many devices that can't suspend or resume properly, the blacklist is growing unreasonably quickly, and this sort of thing should be handled in userspace. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/usb/core/quirks.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 7f17d0f..ebf3dc2 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -152,4 +152,10 @@ void usb_detect_quirks(struct usb_device *udev)
/* do any special quirk handling here if needed */
if (udev->quirks & USB_QUIRK_NO_AUTOSUSPEND)
usb_autosuspend_quirk(udev);
+
+ /* By default, disable autosuspend for all non-hubs */
+#ifdef CONFIG_USB_SUSPEND
+ if (udev->descriptor.bDeviceClass != USB_CLASS_HUB)
+ udev->autosuspend_delay = -1;
+#endif
}