[alsa-devel] Problems with ALC882
tiwai at suse.de
Mon Jan 21 12:47:46 CET 2008
At Mon, 21 Jan 2008 12:27:18 +0100,
Christophe Osuna wrote:
> Tobin, thanks for all the information you provided.
> 2008/1/18, Tobin Davis <tdavis at dsl-only.net>:
> > Yes, it "should". But it also depends on the physical wiring of your system. If you have a system with only 3 audio jacks in the back, it is very difficult to have surround sound & 3 inputs at the same time.
> I have plenty of jacks, including one "Mic", one "Front Mic" and one "Line In".
> 2008/1/18, Takashi Iwai <tiwai at suse.de>:
> > Just deeper looking at the code, I found it's indeed buggy for the
> > secondary ADCs. The patch below should fix it.
> > The second and third ADCs are assigned to PCM#2 while the first ADC is
> > to PCM#0. This is for avoiding the confusion of dsnoop and
> > multi-streams.
> > Give it a try and check whether it doesn't break, at least, for
> > recording the first ADC. If it's OK, I'll apply it to the HG tree
> > later.
> Thanks for the patch. Applying it did seem to solve the problem; now I
> can use the three ADC that are mapped to hw:0,0,0 hw:0,2,0 and
> hw:0,2,1. I have successfully tested the following commands
> arecord -f dat -D hw:0,0,0 | aplay -f dat -D hw:0,0,0
> arecord -f dat -D hw:0,2,0 | aplay -f dat -D hw:0,0,0
> arecord -f dat -D hw:0,2,1 | aplay -f dat -D hw:0,0,0
> It wasn't necessary to override the "substream" value in
> "alc880_pcm_analog_alt_capture" (I suppose that both analog_capture
> and analog_alt_capture are used).
Just because it's two coindentally :)
> Now I need to check that I can open
> the three at the same time but I am rather confident on this.
Thanks. Please let me know if it works. Then I'll apply the patch to
> Could you also tell me where I have to change code in order to force
> the 8 kHz sampling rate? I will try to add an ugly change to
> snd_hda_query_supported_pcm() but I am not sure on whether this is the
> right place.
You can override the info->streams[SNDRV_PCM_STREAM_CAPTURE].rates in
alc_build_pcms(). It's zero as default, which means to probe the
value from the codec.
More information about the Alsa-devel