On Wed, Aug 5, 2009 at 10:02 AM, Andreas Bießmannbiessmann@corscience.de wrote:
Hi Jon,
Jon Smirl schrieb:
When the last sample plays it generates an interrupt. ALSA sends a STOP back after this interrupt. But the audio hardware continues playing between this interrupt and receiving the STOP. Since the last valid sample generated the interrupt, the hardware is playing garbage (stale data) while waiting on the STOP. Probably 500us worth of stale data.,
This sounds correct an I will investigate this. But I wonder why the stale data does not appear when I use aplay without dmix layer. Have you some explanation for this?
You might have a different problem. I heard the problem with both dmix and aplay.
Batch mode ALSA drivers can't tell the current position of the DMA pointer while DMA is active. They only know the DMA position when the DMA hardware generates an interrupt.
I don't know if AVR32 needs to be batch mode or not. Also the AVR32 driver may have been written as a batch driver even when it didn't need to be.
regards
Andreas Bießmann