Hi,
Sorry, I got lost of this mail thread...
On 02/25/11 17:32, ext ylin@mail.com wrote:
Finally, after 4 days, we caught the problem again. When channel is swapped, the IRQ is trigger with receive underrun (IRQ_STATUS_REG = 0x171e). And, from the status register, the transmit is overflow as well. However, I didn't fill zero to one of the transmit channel, and couldn't tell if the playback is swap as well. Any idea why underun happens, or any suggestion to fix it?
Hrm, underflow on receive, and overflow on transmit at the same time? Do you had the transmit overflow irq enabled as well?
Do you have access to the OMAP Errata documents? I have seen an Errata for McBSP2, which was about corruption on transmit operation. It might be, that the same thing causes nasty effects on the receive side as well.
Because of the nature of this happening in your case, I suspect that we are facing with some HW race/bug problem. Receive underflow happens, if DMA tries to read data from McBSP receive data register when it is empty. This should not happen, since the McBSP threshold and the DMA size is in sync, so we should read an amount of data, which is for sure was in the buffer, when McBSP signaled DMA.
Do you have support contact with TI? I'll try to reach ours meanwhile, if they have any idea.
Regards, Péter