On Thursday 10 May 2007, Patras, George wrote: > Hello, > I'm writing a gadget driver runing on a TI Davinci ARM using the musb_hdrc > controller driver (peripheral mode) and have run into the following: > I'm writing 600k of data via bulk ep IN to host, breaking it up into > 32k blocks per ep_request - PIO mode (although same occurs when using DMA)
Are you using the current version of that driver, from the Linux-OMAP tree? Hmm, I see you aren't. The 2.6.10 code is quite ancient. Numerous bugs have been fixed since then. > It's been working up until recently when we turned on some code that > is really hogging the processer. Now transfers seem to stall mid block - > on host side (using USB analyzer) all reads from this endpoint get NAKed > from this point on (but can still do read/write on other bulk ep's). > > I've included the kernel debug messages, it looks like the data is in the > fifo ready to be read but no tx interrupt occurs. Also, not sure why the > underrun messages are occuring : Yes, that's been a puzzle all along. Likely there's some small race, either in the driver or (yes) the hardware. > ------ > ------ > musb_interrupt 1344: <== IRQ peripheral usb0000 tx0008 rx0000 > musb_g_tx 328: <== ep3in, txcsr 2004 > musb_g_tx 354: underrun on ep3, req c5c1bee0 > txstate 230: hw_ep3, maxpacket 512, fifo count 512, txcsr 2004 > musb_write_fifo 276: TX ep3 fifo c801042c count 512 buf c5d04c00 > txstate 308: ep3in TX/IN pio len 19968/32768, txcsr 2007, fifo 512/512 > musb_interrupt 1344: <== IRQ peripheral usb0000 tx0008 rx0000 > musb_g_tx 328: <== ep3in, txcsr 2004 > musb_g_tx 354: underrun on ep3, req c5c1bee0 > txstate 230: hw_ep3, maxpacket 512, fifo count 512, txcsr 2004 > musb_write_fifo 276: TX ep3 fifo c801042c count 512 buf c5d04e00 > txstate 308: ep3in TX/IN pio len 20480/32768, txcsr 2007, fifo 512/512 > musb_interrupt 1344: <== IRQ peripheral usb0000 tx0008 rx0000 > musb_g_tx 328: <== ep3in, txcsr 2004 > musb_g_tx 354: underrun on ep3, req c5c1bee0 > txstate 230: hw_ep3, maxpacket 512, fifo count 512, txcsr 2004 > musb_write_fifo 276: TX ep3 fifo c801042c count 512 buf c5d05000 > txstate 308: ep3in TX/IN pio len 20992/32768, txcsr 2007, fifo 512/512 > *** STALLS HERE **** > TP4100UA gadget: ep queued 32k --> ep3in 567232 bytes remaining > musb_gadget_queue 935: <== to ep3in request=c5c1b560 > TP4100UA gadget: ep queued 32k --> ep3in 534464 bytes remaining > musb_gadget_queue 935: <== to ep3in request=c6efeee0 > TP4100UA gadget: ep queued 32k --> ep3in 501696 bytes remaining > ------ > ------ > musb_gadget_queue 935: <== to ep3in request=c6da6920 > TP4100UA gadget: ep queued 32k --> ep3in 0 bytes remaining to send > > Kernel version is 2.6.10 Try a newer kernel. If it behaves there you may be able to backport that fix. > Any help on this issue would be greatly appreciated. > > George ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel