
On Thu, Oct 29, 2009 at 2:33 AM, Neil Jones neil.jones@imgtec.com wrote:
PCM DMA IRQ: status 100000, timestamp 4483380 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x1000/0x1000/0xbb80, hwptr=0x0, hw_base=0x0, hw_intr=0x0 PCM DMA IRQ: status 120000, timestamp 4483430 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x2000/0x1000/0xbb80, hwptr=0x1000, hw_base=0x0, hw_intr=0x1000 PCM DMA IRQ: status 120000, timestamp 4483480 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x3000/0x1000/0xbb80, hwptr=0x2000, hw_base=0x0, hw_intr=0x2000 PCM DMA IRQ: status 120000, timestamp 4483530 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x4000/0x1000/0xbb80, hwptr=0x3000, hw_base=0x0, hw_intr=0x3000 PCM DMA IRQ: status 120000, timestamp 4483580 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x5000/0x1000/0xbb80, hwptr=0x4000, hw_base=0x0, hw_intr=0x4000 PCM DMA IRQ: status 120000, timestamp 4483630 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x6000/0x1000/0xbb80, hwptr=0x5000, hw_base=0x0, hw_intr=0x5000 PCM DMA IRQ: status 120000, timestamp 4483680 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x7000/0x1000/0xbb80, hwptr=0x6000, hw_base=0x0, hw_intr=0x6000 PCM DMA IRQ: status 120000, timestamp 4483730 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x8000/0x1000/0xbb80, hwptr=0x7000, hw_base=0x0, hw_intr=0x7000 PCM DMA IRQ: status 120000, timestamp 4483790 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x9000/0x1000/0xbb80, hwptr=0x8000, hw_base=0x0, hw_intr=0x8000
PCM DMA IRQ: status 120000, timestamp 4483840 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0xa000/0x1000/0xbb80, hwptr=0x9000, hw_base=0x0, hw_intr=0x9000 PCM DMA IRQ: status 120000, timestamp 4483890 ms, ALSA sound/core/pcm_lib.c:250: period_update: pcmC0D0p:0: pos=0x0/0x1000/0xbb80, hwptr=0xa000, hw_base=0x0, hw_intr=0xa000
Missing IRQ@0xb000 after 0xa000? Timestamp corresponds to 4800 period size but IRQs to 4096 Check that your DMA driver and snd_pcm_ops.pointer function returns correct position.
Also, try setting constraint on buffer size to be an integral multiple of period size, i.e, if you don't take care of last shorter period elapsed than expected by ALSA