Hi all, I would like to ask you , ALSA gurus for some help.
What is exact meaning if "pointer" operations. I know, that it should return offset in DMA buffer. What I'm not sure about is unit - should the offset be in frames or in bytes. And should it be offset against begin of DMA buffer (runtime->dma_addr) or against actual period begin? I'm writing ALSA driver for UDA1341 on Compaq iPAQ (H3600). It produce some sound yet, but it's far from beeing usable. Actually I'm forking on DMA part, and I got these messages from ALSA core (included in my debug listing). If you could give me some hint, what this should be about, I will be pleased :) (listing is a bit longer :( command: aplay -traw -c2 -r8000 -fS16_LE /usr/local/tmp/test3.raw dmesg: ... playback trigger pcm_trigger id: 0 cmd: 1 rate: 8000 channels: 2 period_size 1000 periods: 4 buffer_size: 4000 dma_addr c1164000 dma_bytes: 16000 dma_area: 51 00 13 01 25 00 e2 00 a9 ff 65 00 process_dma sending period 4 (buffer_size: 4000) dma_bytes: 16000 offset: 0 dma_size: 4000 data: 51 00 13 01 25 00 e2 00 a9 ff 65 00 OK sending period 3 (buffer_size: 4000) dma_bytes: 16000 offset: 4000 dma_size: 4000 data: 44 ff 01 00 21 ff de ff 08 ff cb ff OK sending period 2 (buffer_size: 4000) dma_bytes: 16000 offset: 8000 dma_size: 4000 data: 69 31 83 32 88 33 a9 34 81 29 8d 2a pcm trigger done playback pointer get_dma_pos 1320 -> 1320 -> 1320 -> 330 min_align: 1 hw_ptr_base: 00000000 hw_ptr_interrupt: 00000000 period_size: 1000 updated pos: 330 dma_call_back -> period done (still pending 1) <- playback pointer get_dma_pos 4256 -> 256 -> 256 -> 64 min_align: 1 hw_ptr_base: 00000000 hw_ptr_interrupt: 00000000 period_size: 1000 updated pos: 64 ALSA ../alsa-kernel/core/pcm_lib.c:120: U1nexpected hw_pointer value (stream = 0, delta: -936, max jitter = 2000): wrong interrupt acknowledge? process_dma sending period 2 (buffer_size: 4000) dma_bytes: 16000 offset: 8000 dma_size: 4000 data: 69 31 83 32 88 33 a9 34 81 29 8d 2a OK sending period 1 (buffer_size: 4000) dma_bytes: 16000 offset: 12000 dma_size: 4000 data: 06 00 c3 00 4a fb fa fb 01 fa b5 fa dma_callback done dma_call_back -> period done (still pending 1) <- playback pointer get_dma_pos 8296 -> 296 -> 296 -> 74 min_align: 1 hw_ptr_base: 00000000 hw_ptr_interrupt: 00000000 period_size: 1000 updated pos: 74 ALSA ../alsa-kernel/core/pcm_lib.c:120: U1nexpected hw_pointer value (stream = 0, delta: -926, max jitter = 2000): wrong interrupt acknowledge? Thanks -- Tomas Kasparek (sioux, xkaspa06) Tomas.Kasparek@[seznam.cz,volny.cz] [EMAIL PROTECTED] student UIVT FEI VUT Brno _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel