aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/uhci-hcd.h
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2005-04-21 16:04:58 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2005-06-27 17:43:44 -0400
commit6c1b445c226dd82d0961725dec8051b95003723a (patch)
tree1e812a2e9e2d63879555bb48303a8bc344be3864 /drivers/usb/host/uhci-hcd.h
parent4daaa87c8f19c5f1978470e9e91b74d9e0fb0f8e (diff)
[PATCH] USB UHCI: Use root-hub IRQs while suspended
This patch, which has as478b as a prerequisite, enables the uhci-hcd driver to take advantage of root-hub IRQs rather than polling during the time it is suspended. (Unfortunately the hardware doesn't support port-change interrupts while the controller is running.) It also turns off the driver's private timer while the controller is suspended, as it isn't needed then. The combined elimination of polling interrupts and timer interrupts ought to be enough to allow some systems to save a noticeable amount of power while they are otherwise idle. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/uhci-hcd.h')
-rw-r--r--drivers/usb/host/uhci-hcd.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/usb/host/uhci-hcd.h b/drivers/usb/host/uhci-hcd.h
index 827df5e06800..d7c67b73eb7a 100644
--- a/drivers/usb/host/uhci-hcd.h
+++ b/drivers/usb/host/uhci-hcd.h
@@ -327,18 +327,19 @@ static inline int __interval_to_skel(int interval)
327 * driver learns to autosuspend.) 327 * driver learns to autosuspend.)
328 */ 328 */
329enum uhci_rh_state { 329enum uhci_rh_state {
330 /* In the next 4 states the HC must be halted */ 330 /* In the following states the HC must be halted.
331 UHCI_RH_RESET, /* These two must come first */ 331 * These two must come first */
332 UHCI_RH_RESET,
332 UHCI_RH_SUSPENDED, 333 UHCI_RH_SUSPENDED,
333 334
334 UHCI_RH_AUTO_STOPPED, 335 UHCI_RH_AUTO_STOPPED,
335 UHCI_RH_RESUMING, 336 UHCI_RH_RESUMING,
336 337
337 /* In the next state the HC changes from running to halted, so it 338 /* In this state the HC changes from running to halted,
338 * can legally appear either way */ 339 * so it can legally appear either way. */
339 UHCI_RH_SUSPENDING, 340 UHCI_RH_SUSPENDING,
340 341
341 /* In the next two states it's an error if the HC is halted. 342 /* In the following states it's an error if the HC is halted.
342 * These two must come last */ 343 * These two must come last */
343 UHCI_RH_RUNNING, /* The normal state */ 344 UHCI_RH_RUNNING, /* The normal state */
344 UHCI_RH_RUNNING_NODEVS, /* Running with no devices attached */ 345 UHCI_RH_RUNNING_NODEVS, /* Running with no devices attached */
@@ -380,7 +381,6 @@ struct uhci_hcd {
380 381
381 unsigned int scan_in_progress:1; /* Schedule scan is running */ 382 unsigned int scan_in_progress:1; /* Schedule scan is running */
382 unsigned int need_rescan:1; /* Redo the schedule scan */ 383 unsigned int need_rescan:1; /* Redo the schedule scan */
383 unsigned int resume_detect:1; /* Need a Global Resume */
384 unsigned int hc_inaccessible:1; /* HC is suspended or dead */ 384 unsigned int hc_inaccessible:1; /* HC is suspended or dead */
385 385
386 /* Support for port suspend/resume/reset */ 386 /* Support for port suspend/resume/reset */