diff options
author | Roger Quadros <rogerq@ti.com> | 2014-08-04 12:44:46 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-05 16:28:37 -0700 |
commit | 6a5335b46b463c469ca03ddb706c0562e881d2ed (patch) | |
tree | ef765725540cccd89fd97420da4bb8dc671a0487 /drivers | |
parent | d0e6e29e2c9820d39b83fa275bf68c7c8bc7935e (diff) | |
download | linux-3.10-6a5335b46b463c469ca03ddb706c0562e881d2ed.tar.gz linux-3.10-6a5335b46b463c469ca03ddb706c0562e881d2ed.tar.bz2 linux-3.10-6a5335b46b463c469ca03ddb706c0562e881d2ed.zip |
usb: hub: Prevent hub autosuspend if usbcore.autosuspend is -1
commit bdd405d2a5287bdb9b04670ea255e1f122138e66 upstream.
If user specifies that USB autosuspend must be disabled by module
parameter "usbcore.autosuspend=-1" then we must prevent
autosuspend of USB hub devices as well.
commit 596d789a211d introduced in v3.8 changed the original behaivour
and stopped respecting the usbcore.autosuspend parameter for hubs.
Fixes: 596d789a211d "USB: set hub's default autosuspend delay as 0"
Signed-off-by: Roger Quadros <rogerq@ti.com>
Tested-by: Michael Welling <mwelling@emacinc.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/core/hub.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 7e90d146d7d..813697d7246 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -1699,8 +1699,12 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) * - Change autosuspend delay of hub can avoid unnecessary auto * suspend timer for hub, also may decrease power consumption * of USB bus. + * + * - If user has indicated to prevent autosuspend by passing + * usbcore.autosuspend = -1 then keep autosuspend disabled. */ - pm_runtime_set_autosuspend_delay(&hdev->dev, 0); + if (hdev->dev.power.autosuspend_delay >= 0) + pm_runtime_set_autosuspend_delay(&hdev->dev, 0); /* * Hubs have proper suspend/resume support, except for root hubs |