diff options
author | David Brownell <david-b@pacbell.net> | 2005-09-23 01:37:29 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-10-28 19:47:40 -0400 |
commit | f3f3253d644d36a2ea5464005a9c2cf28804d200 (patch) | |
tree | 913d5d38de9acea02b95c43ea23dc6a28f791236 /drivers/usb/core/Kconfig | |
parent | 979d5199fee9e80290ddeb532e5993bd15506712 (diff) |
[PATCH] root hub updates (greater half)
This patch associates hub suspend and resume logic (including for root hubs)
with CONFIG_PM -- instead of CONFIG_USB_SUSPEND as before -- thereby unifying
two troublesome versions of suspend logic into just one. It'll be easier to
keep things right from now on.
- Now usbcore _always_ calls hcd->hub_suspend as needed, instead of
only when USB_SUSPEND is enabled:
* Those root hub methods are now called from hub suspend/resume;
no more skipping between layers during device suspend/resume;
* It now handles cases allowed by sysfs or autosuspended root hubs,
by forcing the hub interface to resume too.
- All devices, including virtual root hubs, now get the same treatment
on their resume paths ... including re-activating all their interfaces.
Plus it gets rid of those stub copies of usb_{suspend,resume}_device(), and
updates the Kconfig to match the new definition of USB_SUSPEND: it provides
(a) selective suspend, downstream from hubs; and (b) remote wakeup, upstream
from any device configuration which supports it.
This calls for minor followup patches for most HCDs (and their PCI glue).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/Kconfig | 11 ++-
drivers/usb/core/hub.c | 163 +++++++++++++++++++++++++----------------------
2 files changed, 97 insertions(+), 77 deletions(-)
Diffstat (limited to 'drivers/usb/core/Kconfig')
-rw-r--r-- | drivers/usb/core/Kconfig | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig index 1a9ff6184943..ff03184da403 100644 --- a/drivers/usb/core/Kconfig +++ b/drivers/usb/core/Kconfig | |||
@@ -61,14 +61,17 @@ config USB_DYNAMIC_MINORS | |||
61 | If you are unsure about this, say N here. | 61 | If you are unsure about this, say N here. |
62 | 62 | ||
63 | config USB_SUSPEND | 63 | config USB_SUSPEND |
64 | bool "USB suspend/resume (EXPERIMENTAL)" | 64 | bool "USB selective suspend/resume and wakeup (EXPERIMENTAL)" |
65 | depends on USB && PM && EXPERIMENTAL | 65 | depends on USB && PM && EXPERIMENTAL |
66 | help | 66 | help |
67 | If you say Y here, you can use driver calls or the sysfs | 67 | If you say Y here, you can use driver calls or the sysfs |
68 | "power/state" file to suspend or resume individual USB | 68 | "power/state" file to suspend or resume individual USB |
69 | peripherals. There are many related features, such as | 69 | peripherals. |
70 | remote wakeup and driver-specific suspend processing, that | 70 | |
71 | may not yet work as expected. | 71 | Also, USB "remote wakeup" signaling is supported, whereby some |
72 | USB devices (like keyboards and network adapters) can wake up | ||
73 | their parent hub. That wakeup cascades up the USB tree, and | ||
74 | could wake the system from states like suspend-to-RAM. | ||
72 | 75 | ||
73 | If you are unsure about this, say N here. | 76 | If you are unsure about this, say N here. |
74 | 77 | ||