diff options
author | Felipe Balbi <felipe.balbi@linux.intel.com> | 2016-04-05 11:47:15 +0200 |
---|---|---|
committer | Felipe Balbi <felipe.balbi@linux.intel.com> | 2016-04-19 10:10:45 +0200 |
commit | 70fdb273db37196e9e5d292d5778a99fededb32f (patch) | |
tree | b32e439346410299192d1c68bc54df42446b4a48 /drivers/usb/dwc3/gadget.c | |
parent | usb: dwc3: switch trb enqueue/dequeue and first_trb_index to u8 (diff) | |
download | linux-70fdb273db37196e9e5d292d5778a99fededb32f.tar.xz linux-70fdb273db37196e9e5d292d5778a99fededb32f.zip |
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>
Diffstat (limited to 'drivers/usb/dwc3/gadget.c')
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 14 |
1 files changed, 7 insertions, 7 deletions
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; } |