[alsa-devel] possible problem in s3c24xx-pcm.c in git-devel branch
Hi,
during the porting the uda134x driver to the git devel branch of ALSA SOC I noticed a possible problem in s3c24xx-pcm.c. s3c24xx_pcm_enqueue gained a new parameter that specifies the maximum number of periods that can be enqueued. In s3c24xx_pcm_prepare, which is called on play/capture start, this is limited to 1. Unfortunately on the 2410 the result of this change is that the DMA is stopped because the autoload of the next DMA descriptor doesn't work. I copied a log at the end of this email. Look for DMT==00 after the irq signaling the end of the first period and the subsequent fail of DMA loading since the channel is stopped.
Now I fixed with:
--- a/sound/soc/s3c24xx/s3c24xx-pcm.c +++ b/sound/soc/s3c24xx/s3c24xx-pcm.c @@ -253,7 +253,7 @@ static int s3c24xx_pcm_prepare(struct snd_pcm_substream *substream) prtd->dma_pos = prtd->dma_start;
/* enqueue dma buffers */ - s3c24xx_pcm_enqueue(substream, 1); + s3c24xx_pcm_enqueue(substream, 2);
return ret; }
but this really could be "playing with DMA" since I'm not sure why there is a 1 (since min_period is 2 I would guess 2 is the right value). Anyway with this change play and capture work well.
# /opt/arm/alsa/bin/aplay /mp3z/prova.wav s3c24xx-pcm: Entered s3c24xx_pcm_open s3c24xx_uda134x_startup 0 31250, 132031, 66015, 44010, 33007, 26406, 22005, 18861, 16503, 14670, 13203, 12002, 11002, 10156, 9430, 8802, 8251, 7766, 7335, 6949, 6601, 6287, 6001, 5740, 5501, 5281, 5078, 4890, 4715, 4552, 4401, 4259, 4125, 46875, 198046, 99023, 66015, 49511, 39609, 33007, 28292, 24755, 22005, 19804, 18004, 16503, 15234, 14146, 13203, 12377, 11649, 11002, 10423, 9902, 9430, 9002, 8610, 8251, 7921, 7617, 7335, 7073, 6829, 6601, 6388, 6188, Playing WAVE '/mp3z/prova.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono s3c24xx_uda134x_hw_params desired rate 8000, 58 s3c24xx_uda134x_hw_params will use: 256FS PCLK 24 sysclk 2048000 err 79 uda134x_set_dai_fmt fmt: 00003000 s3c24xx-i2s: Entered s3c24xx_i2s_set_fmt s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-i2s: Entered s3c24xx_i2s_set_sysclk s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv uda134x_set_dai_sysclk clk_id: 0, freq: 2048000, dir: 1 uda134x_hw_params sysclk: 2048000, rate:8000 uda134x_hw_params dai_fmt: 12288, params_format:2 uda134x_write reg: 08, value:20 s3c24xx-i2s: Entered s3c24xx_i2s_hw_params s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-pcm: Entered s3c24xx_pcm_hw_params s3c24xx-pcm: params bf0673f4, client bf067404, channel 10 dma10: s3c2410_request_dma: client=I2S PCM Stereo out, dev=00000000 mapped channel 10 to 2 dma2: s3c2410_dma_request:755: ls=0, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_request:755: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma10: s3c2410_dma_request : requesting irq 35 s3c2410_dma_request: channel initialised, c044fdd4 s3c2410_dma_set_buffdone_fn: chan=c044fdd4, callback rtn=bf05d108 s3c24xx-pcm: Entered s3c24xx_pcm_mmap s3c24xx-pcm: Entered s3c24xx_pcm_prepare s3c2410_dma_devconfig: source=1, hwcfg=00000003, devaddr=55000010 s3c2410_dma_devconfig: mem source, devaddr=55000010, hwcfg=3 s3c2410_dma_config: chan=10, xfer_unit=2, dcon=80000000 s3c2410_dma_config: Initial dcon is 80000000 s3c2410_dma_config: New dcon is 80000000 s3c2410_dma_config: dcon now a0900000 s3c2410_dma_flush: chan c044fdd4 (2) dma2: s3c2410_dma_flush:912: ls=0, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_flush:912: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c2410_dma_flush: free buffer c326b020, next 00000000 s3c24xx-pcm: Entered s3c24xx_audio_buffdone dma2: s3c2410_dma_flush:939: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma2: s3c2410_dma_flush:954: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue dma_max 1 s3c24xx-pcm: dma_loaded: 0 pos: 332a0000 len: 4096 dma_max: 1 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a0000, size=4096 s3c2410_dma_enqueue: buffer c326b020 queued onto empty channel s3c24xx-pcm: ret 0 period 4096 uda134x_mute mute: 0 uda134x_write reg: 0C, value:80 s3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_start_dma: channel=2 s3c2410_chan_loadbuffer: loading buff c326b020 (0x332a0000,0x001000) load_state is none, checking for noreload (next=00000000) dma2: s3c2410_dma_start:366: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_start:366: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00800 dma2: 00000002 to DMASKTRIG dma2: s3c2410_dma_start:394: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_start:394: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0d00800 dma2: s3c2410_dma_started:967: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_started:967: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0d00800 s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_is_clkmaster s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: 10f IISMOD: 9 IISFCON: 0 s3c24xx-i2s: w: IISCON: 127 IISMOD: 89 IISFCON: a000 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0158 55000010 dma2: s3c2410_dma_irq:608: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a0000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue dma_max 0 s3c24xx-pcm: dma_loaded: 0 pos: 332a1000 len: 4096 dma_max: 2 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a1000, size=4096 s3c2410_dma_enqueue: buffer c326b040 queued onto empty channel s3c2410_chan_loadbuffer: loading buff c326b040 (0x332a1000,0x001000) load_state is none, checking for noreload (next=00000000) s3c24xx-pcm: ret 0 period 4096 s3c24xx-pcm: dma_loaded: 1 pos: 332a2000 len: 4096 dma_max: 2 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c326b000 queued onto non-empty channel dma2: loadbuffer:timeout loading buffer dma2: s3c2410_dma_enqueue:517: ls=1, cur=c326b040, c326b000 c326b000 dma2: s3c2410_dma_enqueue:517: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-pcm: ret -22 period 4096 dma2: timeout waiting for load (s3c2410_dma_irq) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 ^CAborted by signals3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_dma_dostop: dma2: s3c2410_dma_dostop:857: ls=1, cur=c326b040, c326b000 c326b000 dma2: s3c2410_dma_dostop:857: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: 127 IISMOD: 89 IISFCON: a000
On Thu, Nov 13, 2008 at 03:57:08PM +0100, christian pellegrin wrote:
during the porting the uda134x driver to the git devel branch of ALSA SOC I noticed a possible problem in s3c24xx-pcm.c. s3c24xx_pcm_enqueue gained a new parameter that specifies the maximum number of periods that can be enqueued. In s3c24xx_pcm_prepare, which is called on play/capture start, this is limited to 1. Unfortunately on the 2410 the result of this change is that the DMA is stopped because the autoload of the next DMA descriptor doesn't work. I copied a log at the end of this email. Look for DMT==00 after the irq signaling the end of the first period and the subsequent fail of DMA loading since the channel is stopped.
CCing in Dave Anders who wrote that patch (though the problem it fixes was reported previously). I can't help but think that this ought to be being dealt with within the DMA code, it all feels rather fragile.
Now I fixed with:
--- a/sound/soc/s3c24xx/s3c24xx-pcm.c +++ b/sound/soc/s3c24xx/s3c24xx-pcm.c @@ -253,7 +253,7 @@ static int s3c24xx_pcm_prepare(struct snd_pcm_substream *substream) prtd->dma_pos = prtd->dma_start;
/* enqueue dma buffers */
s3c24xx_pcm_enqueue(substream, 1);
s3c24xx_pcm_enqueue(substream, 2); return ret;
}
but this really could be "playing with DMA" since I'm not sure why there is a 1 (since min_period is 2 I would guess 2 is the right value). Anyway with this change play and capture work well.
See the commit log - the underlying DMA code restricts the number of buffers that can be queued up prior to the start of DMA.
# /opt/arm/alsa/bin/aplay /mp3z/prova.wav s3c24xx-pcm: Entered s3c24xx_pcm_open s3c24xx_uda134x_startup 0 31250, 132031, 66015, 44010, 33007, 26406, 22005, 18861, 16503, 14670, 13203, 12002, 11002, 10156, 9430, 8802, 8251, 7766, 7335, 6949, 6601, 6287, 6001, 5740, 5501, 5281, 5078, 4890, 4715, 4552, 4401, 4259, 4125, 46875, 198046, 99023, 66015, 49511, 39609, 33007, 28292, 24755, 22005, 19804, 18004, 16503, 15234, 14146, 13203, 12377, 11649, 11002, 10423, 9902, 9430, 9002, 8610, 8251, 7921, 7617, 7335, 7073, 6829, 6601, 6388, 6188, Playing WAVE '/mp3z/prova.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono s3c24xx_uda134x_hw_params desired rate 8000, 58 s3c24xx_uda134x_hw_params will use: 256FS PCLK 24 sysclk 2048000 err 79 uda134x_set_dai_fmt fmt: 00003000 s3c24xx-i2s: Entered s3c24xx_i2s_set_fmt s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-i2s: Entered s3c24xx_i2s_set_sysclk s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv uda134x_set_dai_sysclk clk_id: 0, freq: 2048000, dir: 1 uda134x_hw_params sysclk: 2048000, rate:8000 uda134x_hw_params dai_fmt: 12288, params_format:2 uda134x_write reg: 08, value:20 s3c24xx-i2s: Entered s3c24xx_i2s_hw_params s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-pcm: Entered s3c24xx_pcm_hw_params s3c24xx-pcm: params bf0673f4, client bf067404, channel 10 dma10: s3c2410_request_dma: client=I2S PCM Stereo out, dev=00000000 mapped channel 10 to 2 dma2: s3c2410_dma_request:755: ls=0, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_request:755: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma10: s3c2410_dma_request : requesting irq 35 s3c2410_dma_request: channel initialised, c044fdd4 s3c2410_dma_set_buffdone_fn: chan=c044fdd4, callback rtn=bf05d108 s3c24xx-pcm: Entered s3c24xx_pcm_mmap s3c24xx-pcm: Entered s3c24xx_pcm_prepare s3c2410_dma_devconfig: source=1, hwcfg=00000003, devaddr=55000010 s3c2410_dma_devconfig: mem source, devaddr=55000010, hwcfg=3 s3c2410_dma_config: chan=10, xfer_unit=2, dcon=80000000 s3c2410_dma_config: Initial dcon is 80000000 s3c2410_dma_config: New dcon is 80000000 s3c2410_dma_config: dcon now a0900000 s3c2410_dma_flush: chan c044fdd4 (2) dma2: s3c2410_dma_flush:912: ls=0, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_flush:912: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c2410_dma_flush: free buffer c326b020, next 00000000 s3c24xx-pcm: Entered s3c24xx_audio_buffdone dma2: s3c2410_dma_flush:939: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma2: s3c2410_dma_flush:954: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue dma_max 1 s3c24xx-pcm: dma_loaded: 0 pos: 332a0000 len: 4096 dma_max: 1 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a0000, size=4096 s3c2410_dma_enqueue: buffer c326b020 queued onto empty channel s3c24xx-pcm: ret 0 period 4096 uda134x_mute mute: 0 uda134x_write reg: 0C, value:80 s3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_start_dma: channel=2 s3c2410_chan_loadbuffer: loading buff c326b020 (0x332a0000,0x001000) load_state is none, checking for noreload (next=00000000) dma2: s3c2410_dma_start:366: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_start:366: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00800 dma2: 00000002 to DMASKTRIG dma2: s3c2410_dma_start:394: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_start:394: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0d00800 dma2: s3c2410_dma_started:967: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_started:967: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0d00800 s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_is_clkmaster s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: 10f IISMOD: 9 IISFCON: 0 s3c24xx-i2s: w: IISCON: 127 IISMOD: 89 IISFCON: a000 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0158 55000010 dma2: s3c2410_dma_irq:608: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a0000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue dma_max 0 s3c24xx-pcm: dma_loaded: 0 pos: 332a1000 len: 4096 dma_max: 2 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a1000, size=4096 s3c2410_dma_enqueue: buffer c326b040 queued onto empty channel s3c2410_chan_loadbuffer: loading buff c326b040 (0x332a1000,0x001000) load_state is none, checking for noreload (next=00000000) s3c24xx-pcm: ret 0 period 4096 s3c24xx-pcm: dma_loaded: 1 pos: 332a2000 len: 4096 dma_max: 2 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c326b000 queued onto non-empty channel dma2: loadbuffer:timeout loading buffer dma2: s3c2410_dma_enqueue:517: ls=1, cur=c326b040, c326b000 c326b000 dma2: s3c2410_dma_enqueue:517: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-pcm: ret -22 period 4096 dma2: timeout waiting for load (s3c2410_dma_irq) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 ^CAborted by signals3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_dma_dostop: dma2: s3c2410_dma_dostop:857: ls=1, cur=c326b040, c326b000 c326b000 dma2: s3c2410_dma_dostop:857: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: 127 IISMOD: 89 IISFCON: a000
-- Christian Pellegrin, see http://www.evolware.org/chri/ "Real Programmers don't play tennis, or any other sport which requires you to change clothes. Mountain climbing is OK, and Real Programmers wear their climbing boots to work in case a mountain should suddenly spring up in the middle of the computer room." _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Thu, Nov 13, 2008 at 4:17 PM, Mark Brown broonie@sirena.org.uk wrote:
On Thu, Nov 13, 2008 at 03:57:08PM +0100, christian pellegrin wrote:
but this really could be "playing with DMA" since I'm not sure why there is a 1 (since min_period is 2 I would guess 2 is the right value). Anyway with this change play and capture work well.
See the commit log - the underlying DMA code restricts the number of buffers that can be queued up prior to the start of DMA.
AFAIK it's limited to 2 transfers, one loaded and one running. It could beneficial to have more of them (so the DMA doesn't stop if one interrupt is delayed for too much time). But I don't know if it's so critical. A period (4k) with cd quality sound takes 23 ms to be played. An embedded system not responding to irqs for all this time probably has worse issues.
On Thu, Nov 13, 2008 at 04:40:03PM +0100, christian pellegrin wrote:
AFAIK it's limited to 2 transfers, one loaded and one running. It
Yes, exactly - meaning that when DMA is idle there's only the loaded buffer.
could beneficial to have more of them (so the DMA doesn't stop if one interrupt is delayed for too much time). But I don't know if it's so critical. A period (4k) with cd quality sound takes 23 ms to be played. An embedded system not responding to irqs for all this time probably has worse issues.
AIUI it's a bootstrapping issue: the problem is what happens when the first DMA buffer completes if there isn't a new buffer ready. Once there's a loaded buffer ready things are happy.
I'm wondering if adding a call to s3c24xx_pcm_enqueue() in the start trigger after enabling the DMA might help matters, but I've not thought that through at all.
On Thu, Nov 13, 2008 at 04:09:36PM +0000, Mark Brown wrote:
AIUI it's a bootstrapping issue: the problem is what happens when the first DMA buffer completes if there isn't a new buffer ready. Once there's a loaded buffer ready things are happy.
More info provided by Dave on IRC:
15:46 < prpplague> now the big difference between the 2410 and 2440 is ofcourse the primary clock, the 2410 generally running 200mhz whereas the 2440 is at 400mhz
...
15:49 < prpplague> i'm wondering if that when on a 200mhz s3c2410 that the second dma enqueued buffer is done, that it has been long enough for the dma channel to have started, but on the 2440 running at 400mhz it hasn't had time to start
...
16:38 < prpplague> broonie: i wonder if i clock the my s3c2440 board at 200mhz and retested if i would see the issue 16:41 < prpplague> broonie: yep, i can recreate christians problem when using the s3c2440 at 200mhz 16:42 < prpplague> broonie: and also if i use the stock code, i.e. without the enqueue limit being 1, and running at 200mhz the audio issue goes away
On Fri, Nov 14, 2008 at 1:46 PM, Mark Brown broonie@sirena.org.uk wrote:
More info provided by Dave on IRC:
15:46 < prpplague> now the big difference between the 2410 and 2440 is ofcourse the primary clock, the 2410 generally running 200mhz whereas the 2440 is at 400mhz
Hi,
to say the truth I never saw problems on the S3c2440 custom board @ 400Mhz I worked with initially:
CPU S3C2440A (id 0x32440001) S3C244X: core 399.651 MHz, memory 133.217 MHz, peripheral 66.608 MHz
Right now I cannot do much complete audio testing with it (the audio part after the codec is crippled) but I can test if dma starts and if audio playing last the right number of seconds. My initial patch was against 2.6.27 so without the limitation on the maximum period initially loading but I remembered that there were only 2 buffers loaded because the lower level dma enqueue function returned error after that. I never saw problems with aplay and madplay.
I will try to do some changes in that code but my worry is how to know how many periods are filled with data for sure by the upper ALSA layers (I'm not an expert in ASLA as you can see).
On Fri, Nov 14, 2008 at 05:20:35PM +0100, christian pellegrin wrote:
initially loading but I remembered that there were only 2 buffers loaded because the lower level dma enqueue function returned error after that. I never saw problems with aplay and madplay.
No errors were being returned - the problems were all in the audio output but the applications weren't aware of this.
I will try to do some changes in that code but my worry is how to know how many periods are filled with data for sure by the upper ALSA layers (I'm not an expert in ASLA as you can see).
It's really up to the application how much data it tries to provide.
Christian,
the enqueue patch i submitted seems to have fixed the issue on several s3c2440 based platforms. i also tested with a s3c2410 and wm8750 codec. i'll re-setup my s3c2410 platform and do some tests. in the mean time, would it be possible for you to provide me a debug log with the enqueue set as:
s3c24xx_pcm_enqueue(substream, 0);
the zero value indicates to use whatever the max dma_limit value is. i agree with Mark, that there is some core DMA issue that needs to be resolved, i'm just not sure what it is as of yet. any feedback on the issue is greatly appreciated.
thanks Dave Anders AML
--- On Thu, 11/13/08, christian pellegrin chripell@gmail.com wrote:
From: christian pellegrin chripell@gmail.com Subject: [alsa-devel] possible problem in s3c24xx-pcm.c in git-devel branch To: alsa-devel@alsa-project.org, "Ben Dooks" ben-linux@fluff.org Date: Thursday, November 13, 2008, 8:57 AM Hi,
during the porting the uda134x driver to the git devel branch of ALSA SOC I noticed a possible problem in s3c24xx-pcm.c. s3c24xx_pcm_enqueue gained a new parameter that specifies the maximum number of periods that can be enqueued. In s3c24xx_pcm_prepare, which is called on play/capture start, this is limited to 1. Unfortunately on the 2410 the result of this change is that the DMA is stopped because the autoload of the next DMA descriptor doesn't work. I copied a log at the end of this email. Look for DMT==00 after the irq signaling the end of the first period and the subsequent fail of DMA loading since the channel is stopped.
Now I fixed with:
--- a/sound/soc/s3c24xx/s3c24xx-pcm.c +++ b/sound/soc/s3c24xx/s3c24xx-pcm.c @@ -253,7 +253,7 @@ static int s3c24xx_pcm_prepare(struct snd_pcm_substream *substream) prtd->dma_pos = prtd->dma_start;
/* enqueue dma buffers */
s3c24xx_pcm_enqueue(substream, 1);
s3c24xx_pcm_enqueue(substream, 2); return ret;
}
but this really could be "playing with DMA" since I'm not sure why there is a 1 (since min_period is 2 I would guess 2 is the right value). Anyway with this change play and capture work well.
# /opt/arm/alsa/bin/aplay /mp3z/prova.wav s3c24xx-pcm: Entered s3c24xx_pcm_open s3c24xx_uda134x_startup 0 31250, 132031, 66015, 44010, 33007, 26406, 22005, 18861, 16503, 14670, 13203, 12002, 11002, 10156, 9430, 8802, 8251, 7766, 7335, 6949, 6601, 6287, 6001, 5740, 5501, 5281, 5078, 4890, 4715, 4552, 4401, 4259, 4125, 46875, 198046, 99023, 66015, 49511, 39609, 33007, 28292, 24755, 22005, 19804, 18004, 16503, 15234, 14146, 13203, 12377, 11649, 11002, 10423, 9902, 9430, 9002, 8610, 8251, 7921, 7617, 7335, 7073, 6829, 6601, 6388, 6188, Playing WAVE '/mp3z/prova.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono s3c24xx_uda134x_hw_params desired rate 8000, 58 s3c24xx_uda134x_hw_params will use: 256FS PCLK 24 sysclk 2048000 err 79 uda134x_set_dai_fmt fmt: 00003000 s3c24xx-i2s: Entered s3c24xx_i2s_set_fmt s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-i2s: Entered s3c24xx_i2s_set_sysclk s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv uda134x_set_dai_sysclk clk_id: 0, freq: 2048000, dir: 1 uda134x_hw_params sysclk: 2048000, rate:8000 uda134x_hw_params dai_fmt: 12288, params_format:2 uda134x_write reg: 08, value:20 s3c24xx-i2s: Entered s3c24xx_i2s_hw_params s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-pcm: Entered s3c24xx_pcm_hw_params s3c24xx-pcm: params bf0673f4, client bf067404, channel 10 dma10: s3c2410_request_dma: client=I2S PCM Stereo out, dev=00000000 mapped channel 10 to 2 dma2: s3c2410_dma_request:755: ls=0, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_request:755: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma10: s3c2410_dma_request : requesting irq 35 s3c2410_dma_request: channel initialised, c044fdd4 s3c2410_dma_set_buffdone_fn: chan=c044fdd4, callback rtn=bf05d108 s3c24xx-pcm: Entered s3c24xx_pcm_mmap s3c24xx-pcm: Entered s3c24xx_pcm_prepare s3c2410_dma_devconfig: source=1, hwcfg=00000003, devaddr=55000010 s3c2410_dma_devconfig: mem source, devaddr=55000010, hwcfg=3 s3c2410_dma_config: chan=10, xfer_unit=2, dcon=80000000 s3c2410_dma_config: Initial dcon is 80000000 s3c2410_dma_config: New dcon is 80000000 s3c2410_dma_config: dcon now a0900000 s3c2410_dma_flush: chan c044fdd4 (2) dma2: s3c2410_dma_flush:912: ls=0, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_flush:912: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c2410_dma_flush: free buffer c326b020, next 00000000 s3c24xx-pcm: Entered s3c24xx_audio_buffdone dma2: s3c2410_dma_flush:939: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma2: s3c2410_dma_flush:954: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue dma_max 1 s3c24xx-pcm: dma_loaded: 0 pos: 332a0000 len: 4096 dma_max: 1 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a0000, size=4096 s3c2410_dma_enqueue: buffer c326b020 queued onto empty channel s3c24xx-pcm: ret 0 period 4096 uda134x_mute mute: 0 uda134x_write reg: 0C, value:80 s3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_start_dma: channel=2 s3c2410_chan_loadbuffer: loading buff c326b020 (0x332a0000,0x001000) load_state is none, checking for noreload (next=00000000) dma2: s3c2410_dma_start:366: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_start:366: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00800 dma2: 00000002 to DMASKTRIG dma2: s3c2410_dma_start:394: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_start:394: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0d00800 dma2: s3c2410_dma_started:967: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_started:967: DCSRC=332a05c4, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0d00800 s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_is_clkmaster s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: 10f IISMOD: 9 IISFCON: 0 s3c24xx-i2s: w: IISCON: 127 IISMOD: 89 IISFCON: a000 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0158 55000010 dma2: s3c2410_dma_irq:608: ls=1, cur=c326b020, 00000000 c326b020 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a0000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue dma_max 0 s3c24xx-pcm: dma_loaded: 0 pos: 332a1000 len: 4096 dma_max: 2 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a1000, size=4096 s3c2410_dma_enqueue: buffer c326b040 queued onto empty channel s3c2410_chan_loadbuffer: loading buff c326b040 (0x332a1000,0x001000) load_state is none, checking for noreload (next=00000000) s3c24xx-pcm: ret 0 period 4096 s3c24xx-pcm: dma_loaded: 1 pos: 332a2000 len: 4096 dma_max: 2 dma_end: 332a3e80 s3c2410_dma_enqueue: id=c31fa300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c326b000 queued onto non-empty channel dma2: loadbuffer:timeout loading buffer dma2: s3c2410_dma_enqueue:517: ls=1, cur=c326b040, c326b000 c326b000 dma2: s3c2410_dma_enqueue:517: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-pcm: ret -22 period 4096 dma2: timeout waiting for load (s3c2410_dma_irq) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1000 55000010 ^CAborted by signals3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_dma_dostop: dma2: s3c2410_dma_dostop:857: ls=1, cur=c326b040, c326b000 c326b000 dma2: s3c2410_dma_dostop:857: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=00, DCON=a0d00800 s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: 127 IISMOD: 89 IISFCON: a000
-- Christian Pellegrin, see http://www.evolware.org/chri/ "Real Programmers don't play tennis, or any other sport which requires you to change clothes. Mountain climbing is OK, and Real Programmers wear their climbing boots to work in case a mountain should suddenly spring up in the middle of the computer room." _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Thu, Nov 13, 2008 at 4:44 PM, David Anders dave123_aml@yahoo.com wrote:
Christian,
Hi,
the enqueue patch i submitted seems to have fixed the issue on several s3c2440 based platforms. i also tested with a s3c2410 and wm8750 codec. i'll re-setup my s3c2410 platform and do some tests. in the mean time, would it be possible for you to provide me a debug log with the enqueue set as:
s3c24xx_pcm_enqueue(substream, 0);
I've copied it at the end of this mail. I have a smdk2410 if you need some testing of patches. In a short time I should have a custom system based on s3c2440 and a uda1341 codec.
the zero value indicates to use whatever the max dma_limit value is. i agree with Mark, that there is some core DMA issue that needs to be resolved, i'm just not sure what it is as of yet. any feedback on the issue is greatly appreciated.
what issues are you seeing? The dma code is quite complicated but I haven't experienced problems yet.
# /opt/arm/alsa/bin/aplay /mp3z/prova.wav s3c24xx-pcm: Entered s3c24xx_pcm_open Playing WAVE '/mp3z/prova.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono s3c24xx-i2s: Entered s3c24xx_i2s_set_fmt s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-i2s: Entered s3c24xx_i2s_set_sysclk s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_set_clkdiv s3c24xx-i2s: Entered s3c24xx_i2s_hw_params s3c24xx-i2s: hw_params r: IISMOD: 9 s3c24xx-i2s: hw_params w: IISMOD: 9 s3c24xx-pcm: Entered s3c24xx_pcm_hw_params s3c24xx-pcm: params bf06743c, client bf06744c, channel 10 dma10: s3c2410_request_dma: client=I2S PCM Stereo out, dev=00000000 mapped channel 10 to 2 dma2: s3c2410_dma_request:755: ls=0, cur=c3223040, 00000000 c3223040 dma2: s3c2410_dma_request:755: DCSRC=332a158a, DISRC=332a1000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma10: s3c2410_dma_request : requesting irq 35 s3c2410_dma_request: channel initialised, c044fdd4 s3c2410_dma_set_buffdone_fn: chan=c044fdd4, callback rtn=bf05d0d0 s3c24xx-pcm: Entered s3c24xx_pcm_mmap s3c24xx-pcm: Entered s3c24xx_pcm_prepare s3c2410_dma_devconfig: source=1, hwcfg=00000003, devaddr=55000010 s3c2410_dma_devconfig: mem source, devaddr=55000010, hwcfg=3 s3c2410_dma_config: chan=10, xfer_unit=2, dcon=80000000 s3c2410_dma_config: Initial dcon is 80000000 s3c2410_dma_config: New dcon is 80000000 s3c2410_dma_config: dcon now a0900000 s3c2410_dma_flush: chan c044fdd4 (2) dma2: s3c2410_dma_flush:912: ls=0, cur=c3223040, 00000000 c3223040 dma2: s3c2410_dma_flush:912: DCSRC=332a158a, DISRC=332a1000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c2410_dma_flush: free buffer c3223040, next 00000000 s3c24xx-pcm: Entered s3c24xx_audio_buffdone dma2: s3c2410_dma_flush:939: DCSRC=332a158a, DISRC=332a1000, DSTAT=00000000 DMT=04, DCON=a0d00000 dma2: s3c2410_dma_flush:954: DCSRC=332a158a, DISRC=332a1000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 0 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 s3c2410_dma_enqueue: buffer c3223040 queued onto empty channel s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_start_dma: channel=2 s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a0000,0x001000) load_state is none, checking for noreload (next=c3223000) dma2: s3c2410_dma_start:366: ls=1, cur=c3223040, c3223000 c3223000 dma2: s3c2410_dma_start:366: DCSRC=332a158a, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0900800 dma2: 00000002 to DMASKTRIG dma2: s3c2410_dma_start:394: ls=1, cur=c3223040, c3223000 c3223000 dma2: s3c2410_dma_start:394: DCSRC=332a158a, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c2410_dma_start: buff not yet loaded, no more todo dma2: s3c2410_dma_started:967: ls=1, cur=c3223040, c3223000 c3223000 dma2: s3c2410_dma_started:967: DCSRC=332a158a, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c2410_dma_started: buff not yet loaded, no more todo s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_is_clkmaster s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: f IISMOD: 9 IISFCON: 0 s3c24xx-i2s: w: IISCON: 27 IISMOD: 89 IISFCON: a000 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a014a 55000010 dma2: s3c2410_dma_irq:608: ls=1, cur=c3223040, c3223000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a1000,0x001000) load_state is none, checking for noreload (next=c3223020) s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a2000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a228e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a3000,0x000e80) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a271e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2802 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a28e8 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a29ce 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a375a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a1000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a128e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1758 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a183e 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a3000,0x000e80) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a328e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3758 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a383e 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a1000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a128e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1758 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a183e 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a3000,0x000e80) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a328e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3758 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a383e 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a1000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a128e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1758 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a183e 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a3000,0x000e80) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a328e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3758 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a383e 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a1000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a128e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1758 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a3000,0x000e80) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2720 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2806 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a28ec 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a0000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a028e 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a1000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0672 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0758 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a175a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a3000,0x000e80) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2720 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2806 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3674 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a375a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a1000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0674 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a075a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a175a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a3000,0x000e80) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2720 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2806 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a375a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a1000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a075a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a175a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a3000,0x000e80) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2720 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2806 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a375a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a1000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a075a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a2000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a175a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a3000,0x000e80) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2720 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2806 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a0000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3676 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a375a 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a1000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a1000,0x001000) s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0676 55000010 dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a1000, DISRC=332a1000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a1290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a2000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223020 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223020 (0x332a2000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223000, 00000000 c3223020 dma2: s3c2410_dma_irq:608: DCSRC=332a2000, DISRC=332a2000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a2290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c24xx-pcm: <7>s3c24xx_pcm_enqueue: corrected dma len 3712 s3c2410_dma_enqueue: id=c31f6300, data=332a3000, size=3712 dma2: s3c2410_dma_enqueue: buffer c3223040 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223040 (0x332a3000,0x000e80) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223020, 00000000 c3223040 dma2: s3c2410_dma_irq:608: DCSRC=332a3000, DISRC=332a3000, DSTAT=00000000 DMT=02, DCON=a0900740 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a3290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_enqueue s3c24xx-pcm: dma_loaded: 1 s3c2410_dma_enqueue: id=c31f6300, data=332a0000, size=4096 dma2: s3c2410_dma_enqueue: buffer c3223000 queued onto non-empty channel s3c2410_chan_loadbuffer: loading buff c3223000 (0x332a0000,0x001000) dma2: s3c2410_dma_irq:608: ls=3, cur=c3223040, 00000000 c3223000 dma2: s3c2410_dma_irq:608: DCSRC=332a3e80, DISRC=332a0000, DSTAT=00000000 DMT=02, DCON=a0900800 s3c24xx-pcm: Entered s3c24xx_audio_buffdone s3c24xx-pcm: Entered s3c24xx_pcm_pointer s3c24xx-pcm: Pointer 332a0290 55000010 s3c24xx-pcm: Entered s3c24xx_pcm_trigger s3c2410_dma_dostop: dma2: s3c2410_dma_dostop:857: ls=1, cur=c3223000, 00000000 c3223000 dma2: s3c2410_dma_dostop:857: DCSRC=332a03b0, DISRC=332a0000, DSTAT=00000628 DMT=02, DCON=a0900800 s3c24xx-i2s: Entered s3c24xx_i2s_trigger s3c24xx-i2s: Entered s3c24xx_snd_txctrl s3c24xx-i2s: r: IISCON: 127 IISMOD: 89 IISFCON: a000 s3c24xx-i2s: w: IISCON: 10f IISMOD: 9 IISFCON: 0 dma2: end of transfer, stopping channel (-32223) s3c2410_dma_dostop: dma2: s3c2410_dma_dostop:857: ls=0, cur=c3223000, 00000000 c3223000 dma2: s3c2410_dma_dostop:857: DCSRC=332a058a, DISRC=332a0000, DSTAT=00000000 DMT=04, DCON=a0d00000 s3c24xx-pcm: Entered s3c24xx_pcm_hw_free s3c24xx-pcm: Entered s3c24xx_pcm_hw_free s3c24xx-pcm: Entered s3c24xx_pcm_close #
participants (3)
-
christian pellegrin
-
David Anders
-
Mark Brown