[alsa-devel] ATI Technologies Inc SBx00 Azalia
Hi,
there seems to be an issue with this ATI SBx00 Azalia driver.
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
$ lspci 00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia
$ lspci -vvvn 00:14.2 0403: 1002:4383 Subsystem: 1002:4383 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64, Cache Line Size: 32 bytes Interrupt: pin ? routed to IRQ 16 Region 0: Memory at f0300000 (64-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME-
----
$ arecord -l **** List of CAPTURE Hardware Devices **** card 0: SB [HDA ATI SB], device 0: ALC262 Analog [ALC262 Analog] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 card 0: SB [HDA ATI SB], device 2: ALC262 Analog [ALC262 Analog] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1
---- $ arecord -L default:CARD=SB HDA ATI SB, ALC262 Analog Default Audio Device front:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog Front speakers surround40:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=SB,DEV=0 HDA ATI SB, ALC262 Digital IEC958 (S/PDIF) Digital Audio Output null Discard all samples (playback) or generate zero samples (capture)
----
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: SB [HDA ATI SB], device 0: ALC262 Analog [ALC262 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 1: ALC262 Digital [ALC262 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0
----
$ aplay -L **** List of PLAYBACK Hardware Devices **** card 0: SB [HDA ATI SB], device 0: ALC262 Analog [ALC262 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 1: ALC262 Digital [ALC262 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 root@osrc-laptop:/devel/alsa/alsa-driver# aplay -L default:CARD=SB HDA ATI SB, ALC262 Analog Default Audio Device front:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog Front speakers surround40:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=SB,DEV=0 HDA ATI SB, ALC262 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers null Discard all samples (playback) or generate zero samples (capture)
----
root@laptop:/proc/asound# cat cards 0 [SB ]: HDA-Intel - HDA ATI SB HDA ATI SB at 0xf0300000 irq 16 root@laptop:/proc/asound# cat devices 0: [ 0] : control 1: : sequencer 7: [ 0- 3]: hardware dependent 16: [ 0- 0]: digital audio playback 17: [ 0- 1]: digital audio playback 24: [ 0- 0]: digital audio capture 26: [ 0- 2]: digital audio capture 33: : timer root@laptop:/proc/asound# cat hwdep 00-03: HDA Codec 3 root@laptop:/proc/asound# cat meminfo kmalloc: 53165 bytes root@osrc-laptop:/proc/asound# cat modules 0 snd_hda_intel root@laptop:/proc/asound# cat pcm 00-02: ALC262 Analog : ALC262 Analog : capture 2 00-01: ALC262 Digital : ALC262 Digital : playback 1 00-00: ALC262 Analog : ALC262 Analog : playback 1 : capture 2 root@laptop:/proc/asound# cat version Advanced Linux Sound Architecture Driver Version 1.0.15. Compiled on Jan 11 2008 for kernel 2.6.23-rc6 (SMP).
maybe someone has more insight in that intel-hda driver.
thanks & best regards, Markus
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.
Also, use the patch below. This will show which control element is affected.
Takashi
--- diff -r a8bb645ff3a1 -r 80b452643ca6 pci/hda/hda_codec.c --- a/pci/hda/hda_codec.c Fri Jan 11 11:39:06 2008 +0100 +++ b/pci/hda/hda_codec.c Fri Jan 11 16:12:23 2008 +0100 @@ -933,7 +933,8 @@ int snd_hda_mixer_amp_volume_info(struct caps = (caps & AC_AMPCAP_NUM_STEPS) >> AC_AMPCAP_NUM_STEPS_SHIFT; if (!caps) { printk(KERN_WARNING "hda_codec: " - "num_steps = 0 for NID=0x%x\n", nid); + "num_steps = 0 for NID=0x%x (ctl = %s)\n", nid, + kcontrol->id.name); return -EINVAL; } uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
Hi Takashi,
On Jan 11, 2008 4:15 PM, Takashi Iwai tiwai@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)
thanks, Markus
At Fri, 11 Jan 2008 17:11:56 +0100, Markus Rechberger wrote:
Hi Takashi,
On Jan 11, 2008 4:15 PM, Takashi Iwai tiwai@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));
On Jan 11, 2008 5:20 PM, Takashi Iwai tiwai@suse.de wrote:
At Fri, 11 Jan 2008 17:11:56 +0100,
Markus Rechberger wrote:
Hi Takashi,
On Jan 11, 2008 4:15 PM, Takashi Iwai tiwai@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?
yes, it fixed the problem!
thanks alot, Markus
At Fri, 11 Jan 2008 17:34:11 +0100, Markus Rechberger wrote:
On Jan 11, 2008 5:20 PM, Takashi Iwai tiwai@suse.de wrote:
At Fri, 11 Jan 2008 17:11:56 +0100,
Markus Rechberger wrote:
Hi Takashi,
On Jan 11, 2008 4:15 PM, Takashi Iwai tiwai@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?
yes, it fixed the problem!
Thanks for confirmation. The patch is applied to HG tree now.
Takashi
participants (2)
-
Markus Rechberger
-
Takashi Iwai