usb: ci_udc: fix ci_flush_{qh,qtd} calls in ci_udc_probe()
authorStephen Warren <swarren@nvidia.com>
Tue, 1 Jul 2014 17:41:13 +0000 (11:41 -0600)
committerMarek Vasut <marex@denx.de>
Wed, 2 Jul 2014 13:45:38 +0000 (15:45 +0200)
commitd7beeb9358a93e2dfd01e0ab5ff4317ce106c4d7
treed478223bf350558b9dcc5330e8451595acc191a0
parentafb8e71caea6784e8c3ff18cab7f27c46511878a
usb: ci_udc: fix ci_flush_{qh,qtd} calls in ci_udc_probe()

ci_udc_probe() initializes a pair of QHs and QTDs for each EP. After
each pair has been initialized, the pair is cache-flushed. The
conversion from QH/QTD index [0..2*NUM_END_POINTS) to EP index
[0..NUM_ENDPOINTS] is incorrect; it simply subtracts 1 (which yields
the QH/QTD index of the first entry in the pair) rather than dividing
by two (which scales the range). Fix this.

On my system, this avoids cache debug prints due to requests to flush
unaligned ranges. This is caused because the flush calls happen before
the items[] array entries are initialized for all but EP0.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
drivers/usb/gadget/ci_udc.c