Johannes H�bner wrote:
Sorry for leaving out so many details, so:
Redhat-linux 8.0 with 2.4.21 kernel, Alsa 0.95. I followed the guidelines at
http://www.alsa-project.org/alsa-doc/doc-php/template.php3?company=Terratec&card=DMX+XFire+1024&chip=CS4624&module=cs46xx
i'm using an alsa cvs version from may'03 (i applied the patches for 4channel output as they were posted on the list) on 2.4.21 kernel (custom build).
aplay -D hw:0,1 produces no sound. surround40 in xine puts the same sound on all 4 speakers,
I mean pair-wise.
just did a test: aplay -D hw:0,1 outputs on the rear outputs (= headphone outputs) only as it should.
Ok, I did --with-debug=detect here is the output (some of it)
------
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:416: cs46xx: failure waiting for FIFO command to complete
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:454: failed waiting for FIFO at addr (01)
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:2455: snd_cs46xx: detecting primary codec
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:2405: cs46xx: CODOEC1 mode 0000
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:2479: snd_cs46xx: primary codec phase one
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:2483: snd_cs46xx: detecting seconadry codec
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:2496: snd_cs46xx: seconadry codec not present
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/cs46xx_lib.c:2511: snd_cs46xx: secondary codec did not respond ...
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:318: dsp_spos: loading module cwc4630 into DSP
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:321: dsp_spos: clearing parameter area
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:336: dsp_spos: downloading parameter data to chip (00000000-00000200)
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:345: dsp_spos: clearing sample area
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:350: dsp_spos: module got no sample segment
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:370: dsp_spos: clearing code area
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:396: dsp_spos: downloading code to chip (00020000-00020ca0)
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:111: dsp_spos: 0 instructions reallocated
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:318: dsp_spos: loading module cwcasync into DSP
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:326: dsp_spos: module got no parameter segment
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:350: dsp_spos: module got no sample segment
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:396: dsp_spos: downloading code to chip (00020ca0-00021378)
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:83: handle_wideop[1]: 01400:02731 addr 8000
Jul 17 01:23:22 maximus kernel: ALSA ../../alsa-kernel/pci/cs46xx/dsp_spos.c:88: handle_wideop[1]: ROM symbol not reallocated
-----
there should be somewhere a line like: setting EAM bit on cs4294 CODEC
this doesn't appear in your logs.
The code part which should set your codec into 4channel mode is in
alsa-kernel/pci/cs46xx/cs46xx_lib.c and looks like
------
#ifdef CONFIG_SND_CS46XX_NEW_DSP
if (chip->nr_ac97_codecs == 1 &&
snd_cs46xx_codec_read(chip,AC97_VENDOR_ID2,
CS46XX_PRIMARY_CODEC_INDEX) == 0x592d) {
/* set primary cs4294 codec into Extended Audio Mode */
snd_printdd("setting EAM bit on cs4294 CODEC\n");
snd_cs46xx_codec_write(chip,AC97_CSR_ACMODE,0x200,
CS46XX_PRIMARY_CODEC_INDEX);
}
/* do soundcard specific mixer setup */
if (chip->mixer_init) {
snd_printdd ("calling chip->mixer_init(chip);\n");
chip->mixer_init(chip);
}
#endif
------
most probably commenting out the fist if(...) should make your 4channel
output work, i.e. changing it to#ifdef CONFIG_SND_CS46XX_NEW_DSP
if (1) {
/* set primary cs4294 codec into Extended Audio Mode */
snd_printdd("setting EAM bit on cs4294 CODEC\n");
snd_cs46xx_codec_write(chip,AC97_CSR_ACMODE,0x200,
CS46XX_PRIMARY_CODEC_INDEX);
}
/* do soundcard specific mixer setup */
if (chip->mixer_init) {
snd_printdd ("calling chip->mixer_init(chip);\n");
chip->mixer_init(chip);
}
#endifbut that's not the idea behind the detection ;-) your codec seems to be not identified correcly. the last output of cat /proc/asound/card0/ac97#0regs reads 0:7e = 592d for me. that seems to correspond to the snd_cs46xx_codec_read(...) == 0x592d in the code above. perhaps you get another output of cat /proc/asound/card0/ac97#0regs ?
of course! but not me :)
I also found this in /proc/asound/card0/dsp
0140 CodecOutSCB_Rear:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01800110 00000179 00000000 00000000 00200060 00800000 01800000 parent [CodecInSCB:0080] sub_list_ptr [RearMixerSCB:0180]
next_scb_ptr [MagicSnoopSCB_I:0110] task_entry [S16_CODECOUTPUTTASK:0179]
index [8] ref_count [1]
Maybe someone knows how to read this.
And this is the (relevant) output from lspci:looks more or less like mine.
00:09.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] (rev 01)
P.S. When this is solved, I will tackle the record-problem, arecord produces silent wave files.
hmm... recording WorksForMe. and recording also worked with the old driver versions (without 4channel output). most probably you just have to change your mixer settings. i'm using the terminal-based alsamixer for this: select your input with SPACE (e.g. Line, CD, or Mic). you ALSO have to select as capture source the item "capture" AND for analog sources (e.g. CD Mic oder line) the item "ADC" (which is the analog-digital-converter). this should work. --fe
------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here: http://www.vmware.com/wl/offer/345/0 _______________________________________________ Alsa-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-user
