On Wednesday 11 February 2009, Alan Stern wrote: > This patch (as1205) moves timer_action() from ehci.h to ehci-hcd.c and > makes it out-of-line. Over the years it has grown too big to be inline > any more. > > Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > CC: David Brownell <david-b@xxxxxxxxxxx> Acked-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> ... clearly not needed for 2.6.29-rc merge! > > --- > > Index: usb-2.6/drivers/usb/host/ehci-hcd.c > =================================================================== > --- usb-2.6.orig/drivers/usb/host/ehci-hcd.c > +++ usb-2.6/drivers/usb/host/ehci-hcd.c > @@ -110,6 +110,42 @@ MODULE_PARM_DESC (ignore_oc, "ignore bog > > /*-------------------------------------------------------------------------*/ > > +static void > +timer_action(struct ehci_hcd *ehci, enum ehci_timer_action action) > +{ > + /* Don't override timeouts which shrink or (later) disable > + * the async ring; just the I/O watchdog. Note that if a > + * SHRINK were pending, OFF would never be requested. > + */ > + if (timer_pending(&ehci->watchdog) > + && ((BIT(TIMER_ASYNC_SHRINK) | BIT(TIMER_ASYNC_OFF)) > + & ehci->actions)) > + return; > + > + if (!test_and_set_bit(action, &ehci->actions)) { > + unsigned long t; > + > + switch (action) { > + case TIMER_IO_WATCHDOG: > + t = EHCI_IO_JIFFIES; > + break; > + case TIMER_ASYNC_OFF: > + t = EHCI_ASYNC_JIFFIES; > + break; > + /* case TIMER_ASYNC_SHRINK: */ > + default: > + /* add a jiffie since we synch against the > + * 8 KHz uframe counter. > + */ > + t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1; > + break; > + } > + mod_timer(&ehci->watchdog, t + jiffies); > + } > +} > + > +/*-------------------------------------------------------------------------*/ > + > /* > * handshake - spin reading hc until handshake completes or fails > * @ptr: address of hc register to be read > Index: usb-2.6/drivers/usb/host/ehci.h > =================================================================== > --- usb-2.6.orig/drivers/usb/host/ehci.h > +++ usb-2.6/drivers/usb/host/ehci.h > @@ -186,40 +186,6 @@ timer_action_done (struct ehci_hcd *ehci > clear_bit (action, &ehci->actions); > } > > -static inline void > -timer_action (struct ehci_hcd *ehci, enum ehci_timer_action action) > -{ > - /* Don't override timeouts which shrink or (later) disable > - * the async ring; just the I/O watchdog. Note that if a > - * SHRINK were pending, OFF would never be requested. > - */ > - if (timer_pending(&ehci->watchdog) > - && ((BIT(TIMER_ASYNC_SHRINK) | BIT(TIMER_ASYNC_OFF)) > - & ehci->actions)) > - return; > - > - if (!test_and_set_bit (action, &ehci->actions)) { > - unsigned long t; > - > - switch (action) { > - case TIMER_IO_WATCHDOG: > - t = EHCI_IO_JIFFIES; > - break; > - case TIMER_ASYNC_OFF: > - t = EHCI_ASYNC_JIFFIES; > - break; > - // case TIMER_ASYNC_SHRINK: > - default: > - /* add a jiffie since we synch against the > - * 8 KHz uframe counter. > - */ > - t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1; > - break; > - } > - mod_timer(&ehci->watchdog, t + jiffies); > - } > -} > - > /*-------------------------------------------------------------------------*/ > > #include <linux/usb/ehci_def.h> > > -- > To unsubscribe from this list: send the line "unsubscribe linux-usb" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html