On Mon, Feb 09, 2009 at 11:59:26AM +0100, ext Giuseppe GORGOGLIONE wrote: > > 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> Acked-by: Felipe Balbi <felipe.balbi@xxxxxxxxx> > > --- > > --- 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; > > > -- balbi -- 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