I set a QDMA channel using LLD, then I wait for qtcc transfer completion by means of EDMA3_DRV_waitAndClearTcc function( hEdma, qtcc). This function waits forever because IPR bit does not set to 1. Previously I set a DMA transfer with a different tcc and it works fine.This is a piece of code inside a while(1) loop:
// Wait for the Completion ISR.
if (result == EDMA3_DRV_SOK)
result = EDMA3_DRV_waitAndClearTcc (hEdma, tcc);
// QDMA transfer configuration
edma3_buffer.src = (Int32 *)(_large_bufferSrc);
edma3_buffer.dst = (Int32 *)(_large_bufferDst);
if (result == EDMA3_DRV_SOK)
result = edma3_qtransfer_cfg(hEdma, &qtcc, edma3_buffer);
// Wait for the Completion ISR.
if (result == EDMA3_DRV_SOK)
result = EDMA3_DRV_waitAndClearTcc (hEdma, qtcc);
What could be wrong? tcc=17, qtcc=22 and all EDMA3 functions return OK.
Platform used: OMAP-L137 with pspdrivers_01_30_00_06 and lld_01_11_00_03 EDMA3 version