[PATCH] USB-MUSB: data not sent to TX FIFO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Giuseppe GORGOGLIONE

When the driver is used for a Mentor Inventra device with
static FIFO and static endpoint configuration from HW the
is_shared_fifo flag is erroneously not enforced as true for
endpoint 0. This makes ep0_txstate() to always print "odd;..."
message and return without sending data in TX FIFO, because
data send requests are queued to endpoints[0].ep_out list and
not to to endpoints[0].ep_in where ep0_txstate() expects to
find them (yes that's right!).

Tested on STMicroelectronics Cartesio STA2062, an ARM based SoC
which is integrating two Mentor Inventra devices, one with static
FIFOs and static endpoint configuration from HW, and one with
dynamic FIFOs and dynamic endpoint configuration from tables.
Only the first device was hitting the bug.
Reference kernel version 2.6.28.4

Signed-off-by: Giuseppe	GORGOGLIONE <giuseppe.gorgoglione@xxxxxx>

---

--- drivers/usb/musb/musb_core.c.orig	2009-02-06 22:47:45.000000000 +0100
+++ drivers/usb/musb/musb_core.c	2009-02-09 11:08:07.000000000 +0100
@@ -1402,6 +1402,7 @@ static int __init musb_core_init(u16 mus
 	/* configure ep0 */
 	musb->endpoints[0].max_packet_sz_tx = MUSB_EP0_FIFOSIZE;
 	musb->endpoints[0].max_packet_sz_rx = MUSB_EP0_FIFOSIZE;
+	musb->endpoints[0].is_shared_fifo = true;
 
 	/* discover endpoint configuration */
 	musb->nr_endpoints = 1;



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux