Michael Grzeschik m.grzesc...@pengutronix.de writes:
This patch reworks the cap value from several read
and write operations to one single operation.
Signed-off-by: Michael Grzeschik m.grzesc...@pengutronix.de
Reviewed-by: Felipe Balbi ba...@ti.com
---
drivers/usb/chipidea/udc.c | 17 -
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 19fc185..b2c227f 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1018,6 +1018,7 @@ static int ep_enable(struct usb_ep *ep,
struct ci13xxx_ep *mEp = container_of(ep, struct ci13xxx_ep, ep);
int retval = 0;
unsigned long flags;
+ u32 val = 0;
This guy could use a bit more descriptive name.
if (ep == NULL || desc == NULL)
return -EINVAL;
@@ -1039,19 +1040,17 @@ static int ep_enable(struct usb_ep *ep,
trace_ci_ep_enable(mEp, 0);
- mEp-qh.ptr-cap = 0;
-
if (mEp-type == USB_ENDPOINT_XFER_CONTROL)
- mEp-qh.ptr-cap |= cpu_to_le32(QH_IOS);
+ val |= QH_IOS;
else if (mEp-type == USB_ENDPOINT_XFER_ISOC)
- mEp-qh.ptr-cap = cpu_to_le32(~QH_MULT);
- else
- mEp-qh.ptr-cap = cpu_to_le32(~QH_ZLT);
+ val = ~QH_MULT;
This does nothing, since val wasn't set to anything other than 0 at this
point.
+
if (mEp-num)
- mEp-qh.ptr-cap |= cpu_to_le32(QH_ZLT);
+ val |= QH_ZLT;
+
+ val |= (mEp-ep.maxpacket __ffs(QH_MAX_PKT)) QH_MAX_PKT;
+ mEp-qh.ptr-cap = cpu_to_le32(val);
- mEp-qh.ptr-cap |= cpu_to_le32((mEp-ep.maxpacket __ffs(QH_MAX_PKT))
- QH_MAX_PKT);
mEp-qh.ptr-td.next |= cpu_to_le32(TD_TERMINATE); /* needed? */
/*
--
1.8.2.rc2
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html