I am running the 2.6.23-davinci1 git kernel on a DM6446EVM.  I'd like to
make the EVM a USB peripheral using the gadget serial driver.  So far
I've been able to transmit data to the board from a host PC, but I've
run into a problem when transmitting data from the board to the host PC.
The data never appears to make it to the PC (to clarify, bulk endpoint 1
fails when transmitting to the PC - endpoint 0 is working correctly).
I'm running some USB monitoring software on the PC, and it never sees
the data, so I'm reasonably certain that the issue lies in my kernel on
the EVM.  

I've tried configuring the musb_hdrc module to use DMA, and I've also
tried PIO (use_dma=n).  In PIO mode, I've traced the data through the
musb driver and determined that the data is getting loaded into the USB
controller FIFO, but the controller doesn't seem to do anything with it.
Subsequent writes just get queued up because the initial write never
completes.  I wrote some extra checks to spit out the value of the TXCSR
register every time a write is queued, and TXCSR is stuck with the value
0x2003, which indicates that there is data in the FIFO that hasn't been
sent.  

Does anyone have any ideas what might be going on?  I'm not very
familiar with USB, so I'm struggling to understand the driver.  I was
under the impression that others were running the 6446 in peripheral
mode, and I didn't see any recent patches that seemed relevant, so I'm
confused as to why something this fundamental wouldn't be working in my
case.  Any help would be appreciated.

Thanks,

Brian

_________________________
Brian Niebuhr
Senior Design Engineer
E.F. Johnson

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to