]> asedeno.scripts.mit.edu Git - linux.git/commit
usb: dwc2: Fix a bug in reading the endpoint directions from reg.
authorRoshan Pius <rpius@chromium.org>
Mon, 2 Feb 2015 22:55:38 +0000 (14:55 -0800)
committerFelipe Balbi <balbi@ti.com>
Wed, 4 Feb 2015 17:16:47 +0000 (11:16 -0600)
commit251a17f5aff990ab117590df2a13ef032464c0d3
treecbff9700882e16cf3186cfbb67faf73d71a98c96
parent1fa2df0c70dadba1139c9dd52c9070d00fe23c98
usb: dwc2: Fix a bug in reading the endpoint directions from reg.

According to  the DWC2 datasheet, the HWCFG1 register stores
the configured endpoint directions for endpoints 0-15 in bit positions
0-31.
==========================
Endpoint Direction (EpDir)
This 32-bit field uses two bits per endpoint to determine the endpoint
direction.
Endpoint
Bits [31:30]: Endpoint 15 direction
Bits [29:28]: Endpoint 14 direction
....
Bits [3:2]: Endpoint 1 direction
Bits[1:0]: Endpoint 0 direction (always BIDIR)
==========================

The DWC2 driver is currently interpreting the contents of the register
as directions for endpoints 1-15 which leads to an error in determining
the configured endpoint directions in the core because the first 2 bits
determine the direction of endpoint 0 and not 1.

This is based on testing/next branch in Felipe's git.

Signed-off-by: Roshan Pius <rpius@chromium.org>
Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc2/gadget.c