Hi Peter,
Wednesday 10 June 2009 10:12:32 Peter Ujfalusi napisaĆ(a):
On Tuesday 09 June 2009 18:17:42 ext Janusz Krzysztofik wrote:
+static struct omap_mcbsp_reg_cfg mcbsp_regs = {
.spcr2 = FREE | XINTM(3) | XRST,
.spcr1 = RINTM(3) | RRST,
.rcr1 = RFRLEN1(2 - 1) | RWDLEN1(OMAP_MCBSP_WORD_8),
.xcr1 = XFRLEN1(1 - 1) | XWDLEN1(OMAP_MCBSP_WORD_16),
+};
BTW, I can't see any way of specifying a similiar mcbsp setup in new omap asoc framework.
Yeah, 8 bit is not supported - in fact only 16 bit is supported - with ASoC on OMAP.
Not only this. AFAICS, there is no way of specifying single phase stereo (with XPHASE/RPHASE unset), 2 words per frame (XFRLEN1/RFRLEN1(2 - 1)). Isn't this required for correct DSP_A/DSP_B support?
But you should be able to use the playback with the current ASoC.
Definitelly yes. I am aware that the above limitations have nothing to do with the main problem, as with current mcbsp code I should always be able to get some kind of noise at least using one of supported formats, as far as clocking is set up correctly.
--- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c @@ -266,6 +266,8 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count, ccr &= ~(1 << 5); if (sync_mode == OMAP_DMA_SYNC_FRAME) ccr |= 1 << 5;
if (dma_trigger)
ccr |= dma_trigger & 0x1f; dma_write(ccr, CCR(lch)); ccr = dma_read(CCR2(lch));
Applied, sorry, did not help (with capture, unlike playback, set up for internal clocking for as much device isolation as possible).
# aplay -D hw:0,0 -f S16_LE /dev/urandom Playing raw data '/dev/urandom' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono omap_pcm_trigger START: DMA pointer at 0x11d4a0d0 omap_pcm_trigger STOP: DMA pointer at 0x11d4a0d0 error # arecord -D hw:0,0 -f S16_LE -t raw /dev/null Recording raw data '/dev/null' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono omap_pcm_trigger START: DMA pointer at 0xe101a0d0 arecord: pcm_read:1529: read error: Input/output error omap_pcm_trigger STOP: DMA pointer at 0xe101a0d0 # cat /dev/urandom >/dev/dsp omap_pcm_trigger START: DMA pointer at 0x11d4a0d0 cat: write error: Input/output error omap_pcm_trigger STOP: DMA pointer at 0x11d4a0d0 # cat /dev/dsp >/dev/null omap_pcm_trigger START: DMA pointer at 0xe101a0d0 cat: read error: Input/output eromap_pcm_trigger STOP: DMA pointer at 0xe101a0d0 ror #
BTW, I have found that, when invoked with those "-D hw:0,0 -f SE16_LE" options, aplay/arecord behave correctly, exactly as Mark has pointed out once at the beginning of this huge thread, stopping themselves after 10 seconds with an error message, without need for ^C.
I would expected that by just copying (I know that there are other things involved) the old ALSA arm directory to the latest kernel and compiling it should be working... It seams I was wrong.
Anyway, if you find porting one or another framework, back or forward, helpfull in any way, just let me know, I can try.
Thanks, Janusz -- To unsubscribe from this list: send the line "unsubscribe alsa-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html