commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=2c170453dffdb021018856633b8ead5653833567
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk

Signed-off-by: Scott Jiang <[email protected]>
---
 drivers/usb/musb/musb_host.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 9d3044b..ba7fd5e 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -587,7 +587,10 @@ musb_rx_reinit(struct musb *musb, struct musb_qh *qh, struct musb_hw_ep *ep)
 			WARNING("rx%d, packet/%d ready?\n", ep->epnum,
 				musb_readw(ep->regs, MUSB_RXCOUNT));
 
-		musb_h_flush_rxfifo(ep, MUSB_RXCSR_CLRDATATOG);
+		if (csr & MUSB_TXCSR_MODE)
+			musb_h_flush_rxfifo(ep, MUSB_RXCSR_CLRDATATOG);
+		else
+			musb_h_flush_rxfifo(ep, 0);
 	}
 
 	/* target addr and (for multipoint) hub addr/port */
@@ -783,7 +786,7 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
 				if (usb_gettoggle(urb->dev, qh->epnum, 1))
 					csr |= MUSB_TXCSR_H_WR_DATATOGGLE
 						| MUSB_TXCSR_H_DATATOGGLE;
-				else
+				else if (csr & MUSB_TXCSR_MODE)
 					csr |= MUSB_TXCSR_CLRDATATOG;
 			}
 
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to