usb: ci_udc: fix emissions of ZLPs
authorStephen Warren <swarren@nvidia.com>
Fri, 11 Sep 2015 23:10:02 +0000 (17:10 -0600)
committerMarek Vasut <marex@denx.de>
Sat, 12 Sep 2015 18:24:42 +0000 (20:24 +0200)
commitb337b3b2a53f112a217f4bd31307b02f830bb787
treebb961f0ce1ce55fcdcb30664521e3b3baaae382e
parent70eaeb03c1fc173b1a7c11ad627d8cc8bbfe3e6c
usb: ci_udc: fix emissions of ZLPs

Commit 6a132416359e "ci_udc: Update the ci_udc driver to support bulk
transfers" caused the value of "len" to change without updating subsquent
users of that variable in ci_ep_submit_next_request(). This caused the
code that detects when to emit ZLPs (Zero Length Packets) never to
trigger, which in turn caused host timeouts when a ZLP was required,
which in turn broke tests/dfu/, even despite the assertion in that
commit's description that "These changes are tested for both the DFU and
lthor."

Fix this by modifying the added dtd iteration code not to modify "len",
but rather to keep state in a separate variable. Rename the variables
while we're at it so they describe their purpose better.

Fixes: 6a132416359e ("ci_udc: Update the ci_udc driver to support bulk transfers")
Cc: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
drivers/usb/gadget/ci_udc.c