summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2010-09-24 14:44:15 +0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-22 21:21:56 +0400
commite0c43476c12db99e20066151d0c49aa76b34e50d (patch)
treeed3bcc1e3e37350050505b1b2bd48d4a2f8c6681
parente7379aaa5ca12f9e011eb5a6bcba88e9bbbfbf87 (diff)
downloadlinux-e0c43476c12db99e20066151d0c49aa76b34e50d.tar.xz
usb: musb: gadget: only enable AUTOCLEAR in double buffered case
commit 633ba7876b96ec339ef685357e2f7c60b5a8ce85 broke g_file_storage functionality by enabling AUTOCLEAR on all cases without caring for all gadget drivers. This patch will only enable AUTOCLEAR if our endpoint's FIFO was configured with double buffering support. Note this is not a complete fix, double buffered case still doesn't work always, but that hasn't been working for quite some time. Other than reverting the entire commit and breaking testusb with double buffered case again, I decided it was better to fix the single buffered case and spend more time fixing double buffered case properly. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/usb/musb/musb_gadget.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 3f1cc5a8381f..5d815049cbaa 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -644,7 +644,8 @@ static void rxstate(struct musb *musb, struct musb_request *req)
*/
csr |= MUSB_RXCSR_DMAENAB;
- if (!musb_ep->hb_mult)
+ if (!musb_ep->hb_mult &&
+ musb_ep->hw_ep->rx_double_buffered)
csr |= MUSB_RXCSR_AUTOCLEAR;
#ifdef USE_MODE1
/* csr |= MUSB_RXCSR_DMAMODE; */