[alsa-devel] DMA buffer gets played only once
Markus Franke
markus.franke at s2002.tu-chemnitz.de
Wed Sep 5 11:17:22 CEST 2007
Clemens Ladisch wrote:
> Markus Franke wrote:
>> It seems like that after the 8th period is transferred
>> pcm_trigger(TRIGGER_STOP) isn't getting called.
>
> Indeed. The stop trigger is called when the entire stream is
> to be stopped.
Well, start and stop trigger get always called mutually. In pseudo code
it would look like this:
---snip---
TRIGGER_START
transfer one period via DMA
TRIGGER_STOP
update DMAC settings in DMA transfer finished callback and call
snd_pcm_period_elapsed()
TRIGGER_START
transfer one period via DMA
TRIGGER_STOP
update DMAC settings in DMA transfer finished callback and call
snd_pcm_period_elapsed()
....and so on.
---snap---
At least this is the behaviour I experienced.
So long,
Markus
More information about the Alsa-devel
mailing list