diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-01 23:13:41 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-01 23:13:41 -0700 |
commit | f6d9ba5470b54ca1418f1274230ec2f2a8212e84 (patch) | |
tree | 33bf9f6f5b285ff9222ad14bec8e2ac19d150578 /usb | |
parent | 5fe8a0d180166b24d6181657324a460c429939b5 (diff) | |
download | patches-f6d9ba5470b54ca1418f1274230ec2f2a8212e84.tar.gz |
usb patch
Diffstat (limited to 'usb')
-rw-r--r-- | usb/usb-fix-ohci-pm-regression.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/usb/usb-fix-ohci-pm-regression.patch b/usb/usb-fix-ohci-pm-regression.patch new file mode 100644 index 00000000000000..18a89d23a82631 --- /dev/null +++ b/usb/usb-fix-ohci-pm-regression.patch @@ -0,0 +1,52 @@ +From david-b@pacbell.net Mon May 1 23:09:52 2006 +From: David Brownell <david-b@pacbell.net> +To: Greg KH <greg@kroah.com> +Subject: USB: fix OHCI PM regression +Date: Mon, 1 May 2006 22:07:13 -0700 +Cc: linux-usb-devel@lists.sourceforge.net +Message-Id: <200605012207.14090.david-b@pacbell.net> + +This fixes a small regression in USB controller power usage for many +OHCI controllers, notably including every non-PCI version of OHCI: on +those systems, the runtime autosuspend mechanism is no longer enabled. + +The change moves to saner defaults. All root hubs are expected to handle +remote wakeup (and hence autosuspend), although drivers for buggy silicon +may override that default. + +Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/core/hcd.c | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +--- gregkh-2.6.orig/drivers/usb/core/hcd.c ++++ gregkh-2.6/drivers/usb/core/hcd.c +@@ -1805,6 +1805,12 @@ int usb_add_hcd(struct usb_hcd *hcd, + USB_SPEED_FULL; + hcd->self.root_hub = rhdev; + ++ /* wakeup flag init defaults to "everything works" for root hubs, ++ * but drivers can override it in reset() if needed, along with ++ * recording the overall controller's system wakeup capability. ++ */ ++ device_init_wakeup(&rhdev->dev, 1); ++ + /* "reset" is misnamed; its role is now one-time init. the controller + * should already have been reset (and boot firmware kicked off etc). + */ +@@ -1813,13 +1819,6 @@ int usb_add_hcd(struct usb_hcd *hcd, + goto err_hcd_driver_setup; + } + +- /* wakeup flag init is in transition; for now we can't rely on PCI to +- * initialize these bits properly, so we let reset() override it. +- * This init should _precede_ the reset() once PCI behaves. +- */ +- device_init_wakeup(&rhdev->dev, +- device_can_wakeup(hcd->self.controller)); +- + /* NOTE: root hub and controller capabilities may not be the same */ + if (device_can_wakeup(hcd->self.controller) + && device_can_wakeup(&hcd->self.root_hub->dev)) |