For some reason I cannot get DSP-initiated EDMA transfers to work on the OMAP-L138 while Linux is running. DSP-initiated QDMA transfers, however, work just fine. EDMA transfers cause linux to hang.
Configuration:
1. I'm using DSP/BIOS and Link/BIOS and am NOT using the EDMA3 LLD. The LLD is overkill for our needs.
2. EDMA/QDMA are not being used by the linux side (though the kernel module (arch/arm/mach-davinci/dma.c) is operational).
3. The kernel module (dma.c) was modified to set the DRAE/QRAE registers to enable DSP-initiated EDMA/QDMA operation.
4. I'm using the 2nd EDMA channel controller and shadow region 1 for the DSP.
5. I'm using interrupts for transfer completion for both EDMA/QDMA.
When the DSP is running WITHOUT linux (via emulator), both EDMA and QDMA work just fine! No error interrupts are generated.
I've tried disabling the linux DMA ISRs but nothing I've done has changed the symptoms.
It is as though the linux side is responding to channel events even though DRAE for shadow region 0 is set to ZERO !
Any help is appreciated !
Thanks,
Matt