diff options
author | Alek Du <alek.du@intel.com> | 2009-07-13 05:30:41 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-09-23 09:46:28 -0400 |
commit | 403dbd36739e344d2d25f56ebbe342248487bd48 (patch) | |
tree | 1df40f2ae38d5a83ac0a1d04a0fe4d29f4d04002 /drivers/usb/host/ehci-hcd.c | |
parent | 4d155eb5f55b879e9947c3553b33764746fb15d5 (diff) |
USB: EHCI: add need_io_watchdog flag to ehci_hcd
Basically the io watchdog is only useful for those quirk HCDs. For most
good ones, it only brings unnecessary wakeups. At least, I know the
Intel EHCI HCDs should turn off the flag.
Signed-off-by: Alek Du <alek.du@intel.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 54715b875759..2dc15f3ad143 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -127,6 +127,8 @@ timer_action(struct ehci_hcd *ehci, enum ehci_timer_action action) | |||
127 | 127 | ||
128 | switch (action) { | 128 | switch (action) { |
129 | case TIMER_IO_WATCHDOG: | 129 | case TIMER_IO_WATCHDOG: |
130 | if (!ehci->need_io_watchdog) | ||
131 | return; | ||
130 | t = EHCI_IO_JIFFIES; | 132 | t = EHCI_IO_JIFFIES; |
131 | break; | 133 | break; |
132 | case TIMER_ASYNC_OFF: | 134 | case TIMER_ASYNC_OFF: |
@@ -508,6 +510,10 @@ static int ehci_init(struct usb_hcd *hcd) | |||
508 | 510 | ||
509 | spin_lock_init(&ehci->lock); | 511 | spin_lock_init(&ehci->lock); |
510 | 512 | ||
513 | /* | ||
514 | * keep io watchdog by default, those good HCDs could turn off it later | ||
515 | */ | ||
516 | ehci->need_io_watchdog = 1; | ||
511 | init_timer(&ehci->watchdog); | 517 | init_timer(&ehci->watchdog); |
512 | ehci->watchdog.function = ehci_watchdog; | 518 | ehci->watchdog.function = ehci_watchdog; |
513 | ehci->watchdog.data = (unsigned long) ehci; | 519 | ehci->watchdog.data = (unsigned long) ehci; |