musb_hdrc: Update host side EP0 handling for correctness
Update host side EP0 handling for correctness: handle zero-length data
stages and continuations of ep0out transfers explicitly, clean up the state
machine a bit. This means that the full set of host-side ep0 tests pass.
Usbtest cases #9 and #10 were ok before; now case #14 works too.
There is however a curious protocol problem in some full speed tests, at
least on DaVinci: sometimes the controller won't ack an IN DATA packet,
causing a retry. If the peripheral doesn't resend that data correctly,
that causes a test failure. (And my test rig doesn't resend correctly...)
This is based on a patch from "ZHENG LEI <realthunder@pmail.ntu.edu.sg>"
against 2.6.10 code, resolving some of the ep0out problems.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>