summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Balbi <felipe.balbi@linux.intel.com>2016-04-05 12:47:15 +0300
committerFelipe Balbi <felipe.balbi@linux.intel.com>2016-04-19 11:10:45 +0300
commit70fdb273db37196e9e5d292d5778a99fededb32f (patch)
treeb32e439346410299192d1c68bc54df42446b4a48
parentc28f82595dde97dda0b769f78f0faea78acd993b (diff)
usb: dwc3: get rid of DWC3_TRB_MASK
instead of using a bitwise and, let's rely on the % operator since that's a lot more clear. Also, GCC will optimize % 256 to nothing anyway. Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
-rw-r--r--drivers/usb/dwc3/core.h1
-rw-r--r--drivers/usb/dwc3/gadget.c14
2 files changed, 7 insertions, 8 deletions
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 2f19573e08d9..832da3f2e03a 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -440,7 +440,6 @@ struct dwc3_event_buffer {
#define DWC3_EP_DIRECTION_RX false
#define DWC3_TRB_NUM 256
-#define DWC3_TRB_MASK (DWC3_TRB_NUM - 1)
/**
* struct dwc3_ep - device side endpoint representation
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index bb29f4f08f5d..0e7cc20c2fd0 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -160,8 +160,8 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
* DWC3_TRBCTL_LINK_TRB because it points the TRB we
* just completed (not the LINK TRB).
*/
- if (((dep->trb_dequeue & DWC3_TRB_MASK) ==
- DWC3_TRB_NUM- 1) &&
+ if (((dep->trb_dequeue % DWC3_TRB_NUM) ==
+ DWC3_TRB_NUM - 1) &&
usb_endpoint_xfer_isoc(dep->endpoint.desc))
dep->trb_dequeue++;
} while(++i < req->request.num_mapped_sgs);
@@ -741,18 +741,18 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
chain ? " chain" : "");
- trb = &dep->trb_pool[dep->trb_enqueue & DWC3_TRB_MASK];
+ trb = &dep->trb_pool[dep->trb_enqueue % DWC3_TRB_NUM];
if (!req->trb) {
dwc3_gadget_move_started_request(req);
req->trb = trb;
req->trb_dma = dwc3_trb_dma_offset(dep, trb);
- req->first_trb_index = dep->trb_enqueue & DWC3_TRB_MASK;
+ req->first_trb_index = dep->trb_enqueue % DWC3_TRB_NUM;
}
dep->trb_enqueue++;
/* Skip the LINK-TRB on ISOC */
- if (((dep->trb_enqueue & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) &&
+ if (((dep->trb_enqueue % DWC3_TRB_NUM) == DWC3_TRB_NUM - 1) &&
usb_endpoint_xfer_isoc(dep->endpoint.desc))
dep->trb_enqueue++;
@@ -826,11 +826,11 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep, bool starting)
BUILD_BUG_ON_NOT_POWER_OF_2(DWC3_TRB_NUM);
/* the first request must not be queued */
- trbs_left = (dep->trb_dequeue - dep->trb_enqueue) & DWC3_TRB_MASK;
+ trbs_left = (dep->trb_dequeue - dep->trb_enqueue) % DWC3_TRB_NUM;
/* Can't wrap around on a non-isoc EP since there's no link TRB */
if (!usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
- max = DWC3_TRB_NUM - (dep->trb_enqueue & DWC3_TRB_MASK);
+ max = DWC3_TRB_NUM - (dep->trb_enqueue % DWC3_TRB_NUM);
if (trbs_left > max)
trbs_left = max;
}