aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci.h
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2012-01-27 09:19:15 -0500
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2012-03-12 12:31:24 -0400
commit8d3709f3dd41769338cc383bec23673fd1ce34e7 (patch)
tree414259a3c273deaf166cdc2747f1ed8b170821fd /drivers/usb/host/xhci.h
parentf99298bfa7c42da8d27c2b42050941471c0866ab (diff)
usb: host: xhci: use __ffs() instead of hardcoding shift
__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@ti.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Diffstat (limited to 'drivers/usb/host/xhci.h')
-rw-r--r--drivers/usb/host/xhci.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 0f4936956103..9a7138c29030 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1223,10 +1223,7 @@ union xhci_trb {
1223/* Allow two commands + a link TRB, along with any reserved command TRBs */ 1223/* Allow two commands + a link TRB, along with any reserved command TRBs */
1224#define MAX_RSVD_CMD_TRBS (TRBS_PER_SEGMENT - 3) 1224#define MAX_RSVD_CMD_TRBS (TRBS_PER_SEGMENT - 3)
1225#define SEGMENT_SIZE (TRBS_PER_SEGMENT*16) 1225#define SEGMENT_SIZE (TRBS_PER_SEGMENT*16)
1226/* SEGMENT_SHIFT should be log2(SEGMENT_SIZE). 1226#define SEGMENT_SHIFT (__ffs(SEGMENT_SIZE))
1227 * Change this if you change TRBS_PER_SEGMENT!
1228 */
1229#define SEGMENT_SHIFT 10
1230/* TRB buffer pointers can't cross 64KB boundaries */ 1227/* TRB buffer pointers can't cross 64KB boundaries */
1231#define TRB_MAX_BUFF_SHIFT 16 1228#define TRB_MAX_BUFF_SHIFT 16
1232#define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT) 1229#define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT)