From: David John on
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.

P.S: The hardware is okay since in Windows I can get both codecs to work
(one active at a time) even though I have to manually change the default
hardware setting.

Regards,
David.
From: Takashi Iwai on
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(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: David John on
> 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.

How would I go about doing this as the dmesg dump had the following:

> 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

Thanks,
David.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Takashi Iwai on
At Wed, 21 Jul 2010 09:38:52 +0530,
David John wrote:
>
> > 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.
>
> How would I go about doing this as the dmesg dump had the following:
>
> > 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

The SSID in the above is the codec SSID. That can be different from
PCI SSID although they are identical in many cases.

Realtek codecs suppose that the codec SSID is set to represent the
hardware implementation status so that the driver can initialize
based on it. The message above shows that your machine doesn't
provide such SSID (as many vendors don't follow that policy,
obviously).


Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: David John on
On 07/21/2010 11:16 AM, Takashi Iwai wrote:
> At Wed, 21 Jul 2010 09:38:52 +0530,
> David John wrote:
>>
>>> 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.
>>
>> How would I go about doing this as the dmesg dump had the following:
>>
>>> 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
>
> The SSID in the above is the codec SSID. That can be different from
> PCI SSID although they are identical in many cases.
>
> Realtek codecs suppose that the codec SSID is set to represent the
> hardware implementation status so that the driver can initialize
> based on it. The message above shows that your machine doesn't
> provide such SSID (as many vendors don't follow that policy,
> obviously).
>

Ah, okay.

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