Title: [4030] trunk: Fix bug [#3750]: define MUSB_TXCSR_MODE as 0x0,
because this bit is reserved for our implementation because the FIFOs for Rx and Tx endpoints are
- Revision
- 4030
- Author
- cooloney
- Date
- 2007-12-11 23:56:39 -0600 (Tue, 11 Dec 2007)
Log Message
Fix bug [#3750]: define MUSB_TXCSR_MODE as 0x0, because this bit is reserved for our implementation because the FIFOs for Rx and Tx endpoints are
separate.
Diffstat
drivers/usb/musb/musb_host.c | 22 ++++++++++------------
include/asm-blackfin/mach-bf527/musb-bfin.h | 2 +-
include/asm-blackfin/mach-bf548/musb-bfin.h | 2 +-
3 files changed, 12 insertions(+), 14 deletions(-)
Modified Paths
Diff
Modified: trunk/drivers/usb/musb/musb_host.c (4029 => 4030)
--- trunk/drivers/usb/musb/musb_host.c 2007-12-11 22:02:34 UTC (rev 4029)
+++ trunk/drivers/usb/musb/musb_host.c 2007-12-12 05:56:39 UTC (rev 4030)
@@ -594,12 +594,11 @@
WARN("rx%d, packet/%d ready?\n", ep->epnum,
musb_readw(ep->regs, MUSB_RXCOUNT));
-#ifdef CONFIG_BLACKFIN
- musb_h_flush_rxfifo(ep, 0);
-#else
- musb_h_flush_rxfifo(ep, MUSB_RXCSR_CLRDATATOG);
-#endif
-
+ csr = musb_readw(ep->regs, MUSB_TXCSR);
+ 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 */
@@ -693,9 +692,9 @@
/* ASSERT: TXCSR_DMAENAB was already cleared */
/* flush all old state, set default */
-#ifndef CONFIG_BLACKFIN
- musb_h_tx_flush_fifo(hw_ep);
-#endif
+ if (csr & MUSB_TXCSR_MODE)
+ musb_h_tx_flush_fifo(hw_ep);
+
csr &= ~(MUSB_TXCSR_H_NAKTIMEOUT
| MUSB_TXCSR_DMAMODE
| MUSB_TXCSR_FRCDATATOG
@@ -709,10 +708,9 @@
qh->epnum, 1))
csr |= MUSB_TXCSR_H_WR_DATATOGGLE
| MUSB_TXCSR_H_DATATOGGLE;
-#ifndef CONFIG_BLACKFIN
else
- csr |= MUSB_TXCSR_CLRDATATOG;
-#endif
+ if (csr & MUSB_TXCSR_MODE)
+ csr |= MUSB_TXCSR_CLRDATATOG;
/* twice in case of double packet buffering */
musb_writew(epio, MUSB_TXCSR, csr);
Modified: trunk/include/asm-blackfin/mach-bf527/musb-bfin.h (4029 => 4030)
--- trunk/include/asm-blackfin/mach-bf527/musb-bfin.h 2007-12-11 22:02:34 UTC (rev 4029)
+++ trunk/include/asm-blackfin/mach-bf527/musb-bfin.h 2007-12-12 05:56:39 UTC (rev 4030)
@@ -198,7 +198,7 @@
/* TXCSR in Peripheral and Host mode */
#define MUSB_TXCSR_AUTOSET 0x8000
-#define MUSB_TXCSR_MODE 0x2000
+#define MUSB_TXCSR_MODE 0x0000 /* Not implemented - HW has seperate Tx/Rx FIFO */
#define MUSB_TXCSR_DMAENAB 0x1000
#define MUSB_TXCSR_FRCDATATOG 0x0800
#define MUSB_TXCSR_DMAMODE 0x0400
Modified: trunk/include/asm-blackfin/mach-bf548/musb-bfin.h (4029 => 4030)
--- trunk/include/asm-blackfin/mach-bf548/musb-bfin.h 2007-12-11 22:02:34 UTC (rev 4029)
+++ trunk/include/asm-blackfin/mach-bf548/musb-bfin.h 2007-12-12 05:56:39 UTC (rev 4030)
@@ -198,7 +198,7 @@
/* TXCSR in Peripheral and Host mode */
#define MUSB_TXCSR_AUTOSET 0x8000
-#define MUSB_TXCSR_MODE 0x2000
+#define MUSB_TXCSR_MODE 0x0000 /* Not implemented - HW has seperate Tx/Rx FIFO */
#define MUSB_TXCSR_DMAENAB 0x1000
#define MUSB_TXCSR_FRCDATATOG 0x0800
#define MUSB_TXCSR_DMAMODE 0x0400
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits