[alsa-devel] ATI Technologies Inc SBx00 Azalia

Takashi Iwai tiwai at suse.de
Fri Jan 11 17:20:00 CET 2008


At Fri, 11 Jan 2008 17:11:56 +0100,
Markus Rechberger wrote:
> 
> Hi Takashi,
> 
> On Jan 11, 2008 4:15 PM, Takashi Iwai <tiwai at suse.de> wrote:
> > At Fri, 11 Jan 2008 15:47:56 +0100,
> > Markus Rechberger wrote:
> > >
> > > Hi,
> > >
> > > there seems to be an issue with this ATI SBx00 Azalia driver.
> >
> > It's rather about the codec than the controller.
> >
> > > nmixer (which uses the oss emulated interface shows up 4 controls)
> > > Vol (volume which seems to control the whole output volume)
> > > PCM2 (maybe not routed on that notebook, it practically has no effect)
> > > IGain (guess for the microphone which I haven't tested yet)
> > > Digital1 (don't know)
> > >
> > > if I try to start alsamixer, it doesn't seem to work and I get an
> > > entry in dmesg whenever I try to run it:
> > > $ alsamixer
> > > alsamixer: function snd_mixer_load failed: Invalid argument
> > >
> > > $ dmesg
> > > ...
> > > [ 1269.997724] hda_codec: num_steps = 0 for NID=0x12
> >
> > Looks like the invalid access to HD-audio codec occurs.
> > Since it's an unknown device, the driver tries to probe the BIOS
> > setting.  Maybe there is some bug there.
> >
> > Anyway, try the latest ALSA HG version if you still didn't.  There
> > are some recent fixes regarding the realtek auto-probe routine.
> >
> 
> I'm using the latest one.
> 
> > Also, use the patch below.  This will show which control element is
> > affected.
> >
> 
> [   39.753443] hda_codec: Unknown model for ALC262, trying auto-probe
> from BIOS...
> [   39.754025] ALSA /devel/alsa/alsa-driver/pci/hda/hda_codec.c:2855:
> autoconfig: line_outs=1 (0x14/0x0/0x0/0x0/0x0)
> [   39.754029] ALSA /devel/alsa/alsa-driver/pci/hda/hda_codec.c:2859:
>   speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
> [   39.754032] ALSA /devel/alsa/alsa-driver/pci/hda/hda_codec.c:2863:
>   hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
> [   39.754035] ALSA /devel/alsa/alsa-driver/pci/hda/hda_codec.c:2871:
>   inputs: mic=0x12, fmic=0x18, line=0x0, fline=0x0, cd=0x0, aux=0x0
> [   39.828608] hda_codec: num_steps = 0 for NID=0x12 (ctl = Mic Boost)
> [   40.497040] hda_codec: num_steps = 0 for NID=0x12 (ctl = Mic Boost)
> [   40.500522] hda_codec: num_steps = 0 for NID=0x12 (ctl = Mic Boost)
> [   40.504570] hda_codec: num_steps = 0 for NID=0x12 (ctl = Mic Boost)
> [   40.508863] hda_codec: num_steps = 0 for NID=0x12 (ctl = Mic Boost)
> [   40.513168] hda_codec: num_steps = 0 for NID=0x12 (ctl = Mic Boost)

Ah, so your machine uses the digital-mic for the mic input.  That's
new.

Does the patch below fix the problem?


Takashi

diff -r 80b452643ca6 pci/hda/patch_realtek.c
--- a/pci/hda/patch_realtek.c	Fri Jan 11 16:12:23 2008 +0100
+++ b/pci/hda/patch_realtek.c	Fri Jan 11 17:19:27 2008 +0100
@@ -6111,7 +6111,7 @@ static int alc_auto_add_mic_boost(struct
 	hda_nid_t nid;
 
 	nid = spec->autocfg.input_pins[AUTO_PIN_MIC];
-	if (nid) {
+	if (nid && (get_wcaps(codec, nid) & AC_WCAP_IN_AMP)) {
 		err = add_control(spec, ALC_CTL_WIDGET_VOL,
 				  "Mic Boost",
 				  HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_INPUT));
@@ -6119,7 +6119,7 @@ static int alc_auto_add_mic_boost(struct
 			return err;
 	}
 	nid = spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC];
-	if (nid) {
+	if (nid && (get_wcaps(codec, nid) & AC_WCAP_IN_AMP)) {
 		err = add_control(spec, ALC_CTL_WIDGET_VOL,
 				  "Front Mic Boost",
 				  HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_INPUT));


More information about the Alsa-devel mailing list