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

Reply via email to