aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci.h
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2012-07-11 11:22:44 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-16 19:56:46 -0400
commit9d9387475af261949f61a5ec465e1f762d7be08a (patch)
tree7aa6688962bde78fba655b791612e60cc1b50adf /drivers/usb/host/ehci.h
parent8c5bf7be56f1a8aecc1f802f132d53f556a9bc45 (diff)
USB: EHCI: use hrtimer for the IAA watchdog
This patch (as1581) replaces the iaa_watchdog kernel timer used by ehci-hcd with an hrtimer event, in keeping with the general conversion to high-res timers. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r--drivers/usb/host/ehci.h16
1 files changed, 1 insertions, 15 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 755e30b0000b..d9414aae610f 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -84,6 +84,7 @@ enum ehci_hrtimer_event {
84 EHCI_HRTIMER_POLL_DEAD, /* Wait for dead controller to stop */ 84 EHCI_HRTIMER_POLL_DEAD, /* Wait for dead controller to stop */
85 EHCI_HRTIMER_UNLINK_INTR, /* Wait for interrupt QH unlink */ 85 EHCI_HRTIMER_UNLINK_INTR, /* Wait for interrupt QH unlink */
86 EHCI_HRTIMER_FREE_ITDS, /* Wait for unused iTDs and siTDs */ 86 EHCI_HRTIMER_FREE_ITDS, /* Wait for unused iTDs and siTDs */
87 EHCI_HRTIMER_IAA_WATCHDOG, /* Handle lost IAA interrupts */
87 EHCI_HRTIMER_DISABLE_PERIODIC, /* Wait to disable periodic sched */ 88 EHCI_HRTIMER_DISABLE_PERIODIC, /* Wait to disable periodic sched */
88 EHCI_HRTIMER_DISABLE_ASYNC, /* Wait to disable async sched */ 89 EHCI_HRTIMER_DISABLE_ASYNC, /* Wait to disable async sched */
89 EHCI_HRTIMER_NUM_EVENTS /* Must come last */ 90 EHCI_HRTIMER_NUM_EVENTS /* Must come last */
@@ -168,7 +169,6 @@ struct ehci_hcd { /* one per controller */
168 struct dma_pool *itd_pool; /* itd per iso urb */ 169 struct dma_pool *itd_pool; /* itd per iso urb */
169 struct dma_pool *sitd_pool; /* sitd per split iso urb */ 170 struct dma_pool *sitd_pool; /* sitd per split iso urb */
170 171
171 struct timer_list iaa_watchdog;
172 struct timer_list watchdog; 172 struct timer_list watchdog;
173 unsigned long actions; 173 unsigned long actions;
174 unsigned periodic_stamp; 174 unsigned periodic_stamp;
@@ -228,20 +228,6 @@ static inline struct usb_hcd *ehci_to_hcd (struct ehci_hcd *ehci)
228 return container_of ((void *) ehci, struct usb_hcd, hcd_priv); 228 return container_of ((void *) ehci, struct usb_hcd, hcd_priv);
229} 229}
230 230
231
232static inline void
233iaa_watchdog_start(struct ehci_hcd *ehci)
234{
235 WARN_ON(timer_pending(&ehci->iaa_watchdog));
236 mod_timer(&ehci->iaa_watchdog,
237 jiffies + msecs_to_jiffies(EHCI_IAA_MSECS));
238}
239
240static inline void iaa_watchdog_done(struct ehci_hcd *ehci)
241{
242 del_timer(&ehci->iaa_watchdog);
243}
244
245enum ehci_timer_action { 231enum ehci_timer_action {
246 TIMER_IO_WATCHDOG, 232 TIMER_IO_WATCHDOG,
247 TIMER_ASYNC_SHRINK, 233 TIMER_ASYNC_SHRINK,