Hi Yuri,
We have customized platform of SabreSD I.MX 6Q.
As you said, "" Generally it is possible to mask (disable) some channles in the INTRMASK - in order to skip possible overflow of data for some active channel. ""
Now, question regarding SDMAARM_INTRMASK register [Chapter 55 (SDMA), pg 4871, of I.MX6Q reference manual].
It state that:: "" The Interrupt Mask Register contains 32 interrupt generation mask bits. If bit HIMASK[i] is set, the HI[i] bit is set and an interrupt is sent to the ARM platform when a DMA request error is detected on channel i (for example, EVTERR[i] is set).""
On our platform, when i read this register values::
/* Code start */
stat = readl_relaxed(sdma->regs + SDMA_H_INTRMSK);
// Code end */
I got value always 'stat=0'.
But, even though there is no masking bit 'set', ARM Platform got interrupt & EVTERR[i] bit is set.
Reason to ask this, we are facing problem of Audio lost & only log we got that EVTERR[i] is set & "overflow of data" occurs for (i) DMA channels.
We have created discussion here: https://community.freescale.com/message/380162
Is SDMA disable/stop the DMA channel in case it found overflow of data for that channel?
Is there any way by which SDMA continue with its execution & don't stop the DMA Channel ?
Please reply us !!
-Ankit.