Re: [RFC/PATCH] usb: host: xhci: use __ffs() instead of hardcoding shift

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

 



On Fri, Jan 27, 2012 at 04:19:15PM +0200, Felipe Balbi wrote:
> __ffs() can tell us which is the SEGMENT_SHIFT value
> to be used. This will prevent problems when users are
> too fast and don't pay attention to the need of fixing
> the Shift after changing TRBS_PER_SEGMENT.
> 
> Signed-off-by: Felipe Balbi <balbi@xxxxxx>
> ---
> 
> *** COMPILE TESTED ONLY ***
> 
> Sarah, what do you think about this patch ?

Sure, this looks like a good idea.  I'll queue it for 3.4 after testing
it.

Sarah

> 
>  drivers/usb/host/xhci.h |    5 +----
>  1 files changed, 1 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
> index fb99c83..7bdfe5f 100644
> --- a/drivers/usb/host/xhci.h
> +++ b/drivers/usb/host/xhci.h
> @@ -1223,10 +1223,7 @@ union xhci_trb {
>  /* Allow two commands + a link TRB, along with any reserved command TRBs */
>  #define MAX_RSVD_CMD_TRBS	(TRBS_PER_SEGMENT - 3)
>  #define SEGMENT_SIZE		(TRBS_PER_SEGMENT*16)
> -/* SEGMENT_SHIFT should be log2(SEGMENT_SIZE).
> - * Change this if you change TRBS_PER_SEGMENT!
> - */
> -#define SEGMENT_SHIFT		10
> +#define SEGMENT_SHIFT		(__ffs(SEGMENT_SIZE))
>  /* TRB buffer pointers can't cross 64KB boundaries */
>  #define TRB_MAX_BUFF_SHIFT		16
>  #define TRB_MAX_BUFF_SIZE	(1 << TRB_MAX_BUFF_SHIFT)
> -- 
> 1.7.8.2
> 
--
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