USB: ehci-dbgp: split PID register updates for IN and OUT pipes
authorJason Wessel <jason.wessel@windriver.com>
Fri, 5 Feb 2010 17:49:05 +0000 (11:49 -0600)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 2 Mar 2010 22:54:58 +0000 (14:54 -0800)
commit815e173e1d71742f1135fb4d4931e8115a3ca0ef
tree14ccc8eb7e1082a896e3ae6906c52b6a21cac264
parent5272098365514ab232fa6a695d58c3961fec6b7a
USB: ehci-dbgp: split PID register updates for IN and OUT pipes

This patch addresses two problems:

1) Bulk reads should always use the DATA0 for the pid, and the write
   PID should toggle between DATA0 and DATA1.  The fix is using
   dbgp_pid_write_update() and dbgp_pid_read_update().

2) The delay loop for waiting for a transaction was not long enough to
   always complete the initial handshake inside dbgp_wait_until_done().
   After the initial handshake the maximum delay length is never reached.

The combined result of these two changes allows for the removal of the
forced resynchronization where a bulk write was issued with a dummy
data payload only to get the device to start accepting data writes
again.

CC: Eric Biederman <ebiederm@xmission.com>
CC: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/early/ehci-dbgp.c