UPSTREAM: usb: dwc3: get rid of DWC3_TRB_MASK
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 5 Apr 2016 09:47:15 +0000 (12:47 +0300)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 16 Aug 2016 12:48:19 +0000 (20:48 +0800)
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.

Change-Id: I7c12be2d080f3c70b1028def9736d73084100de7
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit 70fdb273db37196e9e5d292d5778a99fededb32f)

drivers/usb/dwc3/core.h
drivers/usb/dwc3/gadget.c

index 2aa86f5f629fecfd1d94766c87ea7c55fe3d18fd..e4fe8d752c8f9b532a0034c920a6ecf0e2686c5f 100644 (file)
@@ -438,7 +438,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
index 48d4b0d9e52dfece174e03793b6bb6ae6c2d64a2..bb7c6df8f6f18c8e9d1804b00cdd2c01c9885ea9 100644 (file)
@@ -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;
        }