I am trying to investigate an issue on a TI Sitara CPU, AM3352 with the musb 
USB controller.

The scenario is that a device has been in use and working correctly. The device 
is an Android device and is presenting as an MTP device. That first session of 
use is finished and the port is reset but the device is not unplugged, so 
enumeration and configuration starts again the next time it is needed. The 
transfers over EP0 using PIO all proceed as expected. The problem is the first 
bulk packet sent to EP1, which also happens to be the first dma packet. USBMON 
shows this packet as being sent. However a hardware analyser does not show this 
packet on the wire and of course there is no ACK either. Looking at the debug 
info from the musb driver I can see the dma being started and then the callback 
being called. MUSB_TXCSR_TXPKTRDY remains set as does MUSB_TXCSR_TXFIFONOTEMPTY 
so nothing else happens. The TXCSR register is 0x3403. The code is waiting for 
MUSB_TXCSR_TXPKTRDY to be cleared but that will not happen until an ACK is 
received. It just seems that the controller is not putting the packet onto the 
wire for some reason.

This is on 4.5.1.

I would welcome some pointers on how to proceed to debug this or else any 
information on possible applicable errata and workarounds for this.

Thanks,
Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to