usb: ci_udc: detect queued requests on ep0
authorStephen Warren <swarren@nvidia.com>
Thu, 29 May 2014 20:53:00 +0000 (14:53 -0600)
committerMarek Vasut <marex@denx.de>
Sun, 1 Jun 2014 17:22:39 +0000 (19:22 +0200)
commit7484d84cbb58e01ff1d2d458d899ea1fba012724
tree7938f628fa83b51bff0fea23654cc5d0e622ae4b
parent77b83e6d099cb2149e5b2c33a700003227d99297
usb: ci_udc: detect queued requests on ep0

The flipping of ep0 between IN and OUT relies on ci_ep_queue() consuming
the current IN/OUT setting immediately. If this is deferred to a later
point when the req is pulled out of ci_req->queue, then the IN/OUT
setting may have been changed since the req was queued, and state will
get out of sync. This condition doesn't occur today, but could if bugs
were introduced later, and this error-check will save a lot of debugging
time.

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