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.

EDMA INTERRUPT EVENT MISS error [EDMA happens once , for second iteration it shows this issue]



Hi All, 

We are working on the OMAP L138 EDMA 3 for the first time and hence some doubts .

We are trying to do an EDMA transfer of 1024 bytes in loop. Bit the EDMA happens for the first time only and then it shows EVENT MISS ERROR.

Can anyone please guide me what am i doing wrong:-

a) The following is the value of parameters:-

unsigned int ACNT = 1024;
unsigned int BCNT = 1;
unsigned int CCNT = 1;
unsigned short int SRCBINDX = 0 , DESTBINDX = 0;
unsigned short int SRCCINDX = 0 , DESTCINDX = 0;
unsigned int write_dma_queue = 0;
unsigned int BRESET = BCNT;

b) The code to get the resuorce is :-

edma_set_src( write_dma_chan , (unsigned long) dmasrc , INCR ,W8BIT);

edma_set_dest(write_dma_chan , ( EMIF_CHIP5_BASE + (BRAM_ADDR) ) ,INCR,W8BIT);

edma_set_src_index(write_dma_chan , SRCBINDX , SRCCINDX) ;
edma_set_dest_index(write_dma_chan,DESTBINDX , DESTCINDX);
edma_set_transfer_params (write_dma_chan,ACNT , BCNT, CCNT , BRESET , ASYNC);
edma_read_slot(write_dma_chan ,&param_set);

param_set.opt |= (1 << 21);
param_set.opt |= (1 << 20);
param_set.opt |= EDMA_TCC(EDMA_CHAN_SLOT(write_dma_chan));
edma_write_slot(write_dma_chan, &param_set);

C) The code to release the resource :-

edma_stop(write_dma_chan);
edma_clean_channel(write_dma_chan);
edma_free_slot(write_dma_chan);
edma_free_channel(write_dma_chan);

D) The actual EDMA code :-

irqraised1 = 0;

ret = edma_start(write_dma_chan);
if (ret != 0) {
pr_info("The START_EDMA function call failed while EDMA_WRITE \n");
break;
}

while (irqraised1 == 0u);
if (irqraised1 < 0) {
pr_info("EVENT MISS HAPPENED IN EDMA_WRITE\n");
return(-1);
}

The code for EDMA i am calling in function .This fuction i am calling in loop for say 5 times.

But EDMA data transfer happens only for the first time , for other it shows INTERRUPT EVENT MISS ... 

I am not able to understand what is causing this issue . Can any one please provide me some info on the same . 

Probably i am not very much clear with the EDMA flow ... hence can't figure out the reason 

Thank You

Ashish