Re: [PATCH] EHCI: Make timer_action out-of-line

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux