usb: musb: gadget: fix dma mode 0 in double buffer Rx case
authorMing Lei <tom.leiming@gmail.com>
Sat, 25 Sep 2010 10:50:43 +0000 (05:50 -0500)
committerFelipe Balbi <balbi@ti.com>
Fri, 5 Nov 2010 11:42:31 +0000 (13:42 +0200)
commit9001d80df9b1db946ef5d0fb52c974d74c567b86
treed0e0487e8617782a1740a68b0af392354c5231bd
parentc8ddb2713c624f432fa5fe3c7ecffcdda46ea0d4
usb: musb: gadget: fix dma mode 0 in double buffer Rx case

1, In Rx double buffer case, FIFO may have two packets, so
rxstate should be called to unload fifo if RXPKTRDY is set
even the current request has not been completed.

2, Commit 633ba7876b96ec339ef685357e2f7c60b5a8ce85
introduces autoclear to support double buffer in dma mode 0,
so remove clearing RXPKTRDY manually for dma mode 0.

3, Commit c7af6b29ffeffbeb28caf39e5b2ce29b11807c7d may break
dma mode 1 for non-doublebuffer endpoint, fix it.

With this patch, either usbtest #5 or g_file_storage(writing
file to device in usb host) or g_ether have been tested OK in
double buffer case(using fifo mode 3). Also, this patch has
been verified that single buffer case can't be broken.

Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Anand Gadiyar <gadiyar@ti.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_gadget.c