This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

musb cppi41_dma.c

Looking at the arago git tree as of mid November, the musb usb code has a fix in routine usb_process_tx_queue in cppi41_dma.c to schedule out the wait for tx fifo empty completion interrupt. This is done in txdma_completion_work

As the comment in that routine states:

/* Sometimes a EP can unregister from a DMA
* channel while the data is still in the FIFO.
* Probable reason a proper abort was not
* called before taking such a step.
* Protect against such cases.
*/

Unfortunately the routine usb_process_tx_queue still contains a redundant call to do:

epio = tx_ch->end_pt->regs;
csr = musb_readw(epio, MUSB_TXCSR);

The tx_ch->end_pt sometimes goes away with a resulting kernel crash!

The above two lines can be deleted from  ''usb_process_tx_queue'' in any case as they are no longer needed.

Regards

Jamie