Hello TI team,
We are working on DM8148 based custom board and we are using EZSDK andT the McASP is being serviced by EDMA.
From the TRM of 8148 I have read that,
1. From McASP, an AREVT event will be generated for EDMA when new audio frame is available in RBUF and it is ready to read.
2. In EDMA , for any triggered event , based on PaRAM set , a transfer request (TR) will submitted to TC(transfer controller) from CC(channel controller). We just need to configure the parameters like source address, destination, ACNT, BCNT, indexes etc. The data transfer task from the source to destination is completely hardware based(correct me if I am wrong).
I am unable find any code in Kernel related to AREVT event. In sound/soc/davinci/davinci-pcm.c file , function davinci_pcm_enqueue_dma() I am getting ACNT=2, BCNT=1, CCNT=2050. It appearing that EDMA is transferring 4100 bytes(data in bulk), multiple audio frames in a single event.
My question are,
1. Is there any logical code for AREVT event in kernel or it is completely hardware based ?
2. How the EDMA is copying the data word from McASP' RBUF and where it is storing the data ? Because from the above observation EDMA is transferring 4100 bytes(must be multiple audio frame data) while the AREVT event is being generated for single audio frame or 64 words only. So why EDMA is transferring more data bytes ?
3.. Can we have access to the each audio frame individually from the software side ?
4. Is it possible to modify/process each audio frame's data from the software prospective before EDMA put the data at destination address ?
BR,
DS Patel