Re: Multiple Codec Problem With Intel HD Audio

From: Takashi Iwai
Date: Mon Jul 19 2010 - 19:17:32 EST


At Sun, 18 Jul 2010 22:08:53 +0530,
David John wrote:
>
> Hi Takashi-san,
>
> I have a custom Atom Poulsbo based board on which I am running 2.6.34.
> The board has an ALC888 connected to the Intel HD Audio controller for
> the main speakers and another ALC888 on a daughter board connected to
> the same controller for additional headphone and mic jacks. On boot I
> get the following:
>
> hda_codec: ALC888: BIOS auto-probing.
> ALSA sound/pci/hda/hda_codec.c:4358: autoconfig: line_outs=1
> (0x14/0x0/0x0/0x0/0x0)
> ALSA sound/pci/hda/hda_codec.c:4362: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
> ALSA sound/pci/hda/hda_codec.c:4366: hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
> ALSA sound/pci/hda/hda_codec.c:4367: mono: mono_out=0x0
> ALSA sound/pci/hda/hda_codec.c:4378: inputs: mic=0x18, fmic=0x0,
> line=0x1c, fline=0x0, cd=0x0, aux=0x0
> ALSA sound/pci/hda/patch_realtek.c:1287: realtek: No valid SSID,
> checking pincfg 0x40120601 for NID 0x1d
> ALSA sound/pci/hda/patch_realtek.c:1303: realtek: Enabling init
> ASM_ID=0x0601 CODEC_ID=10ec0888
> input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input7
>
> hda_codec: ALC888: BIOS auto-probing.
> ALSA sound/pci/hda/hda_codec.c:4358: autoconfig: line_outs=1
> (0x14/0x0/0x0/0x0/0x0)
> ALSA sound/pci/hda/hda_codec.c:4362: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
> ALSA sound/pci/hda/hda_codec.c:4366: hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
> ALSA sound/pci/hda/hda_codec.c:4367: mono: mono_out=0x0
> ALSA sound/pci/hda/hda_codec.c:4378: inputs: mic=0x18, fmic=0x0,
> line=0x1c, fline=0x0, cd=0x0, aux=0x0
> ALSA sound/pci/hda/patch_realtek.c:1287: realtek: No valid SSID,
> checking pincfg 0x40000001 for NID 0x1d
> ALSA sound/pci/hda/patch_realtek.c:1303: realtek: Enabling init
> ASM_ID=0x0001 CODEC_ID=10ec0888
> input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input8
>
> ALSA sound/core/control.c:336: control 2:0:0:Mic Playback Volume:0 is
> already present
> ALSA sound/core/control.c:336: control 2:0:0:Mic Playback Switch:0 is
> already present
> ALSA sound/core/control.c:336: control 2:0:0:Line Playback Volume:0 is
> already present
> ALSA sound/core/control.c:336: control 2:0:0:Line Playback Switch:0 is
> already present
> ALSA sound/core/control.c:336: control 2:0:0:Mic Boost:0 is already present
> ALSA sound/core/control.c:336: control 2:0:0:Capture Switch:0 is already
> present
> ALSA sound/core/control.c:336: control 2:0:0:Capture Volume:0 is already
> present
> ALSA sound/core/control.c:336: control 2:0:0:Input Source:0 is already
> present
> ALSA sound/core/control.c:336: control 2:0:0:Beep Playback Volume:0 is
> already present
> hda_codec: cannot build controls for #1 (error -16)
>
> The headphone and mic jacks don't work.
>
> I have noticed that in the kernel Intel HD audio documentation, you have
> mentioned:
>
> "In theory, there might be multiple audio codecs, e.g. for analog and
> digital outputs, and the driver might not work properly because of
> conflict of mixer elements. This should be fixed in future if such
> hardware really exists."
>
> I believe this is the problem I am hitting? Is there a fix available for
> this? I have attached the codec info from /proc.

Yes, this looks like the issue.

A possible fix without much hustle would be to define mode quirks for
both codecs by checking the PCI SSID so that they won't conflict.
But, for linking the volumes, it'd be a bit tricky, and ADC / DAC for
the secondary codec will be different from the first one, anyway.


Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/