Comment 23 for bug 131368

Revision history for this message
Peter Clifton (pcjc2) wrote :

Seems as if the hardware dependant codec drivers aren't getting compiled in. After adding to the Makefile:

EXTRA_CFLAGS := -DCONFIG_SND_HDA_GENERIC \
                -DCONFIG_SND_HDA_CODEC_REALTEK \
                -DCONFIG_SND_HDA_CODEC_CMEDIA \
                -DCONFIG_SND_HDA_CODEC_ANALOG \
                -DCONFIG_SND_HDA_CODEC_SIGMATEL \
                -DCONFIG_SND_HDA_CODEC_SI3054 \
                -DCONFIG_SND_HDA_CODEC_ATIHDMI \
                -DCONFIG_SND_HDA_CODEC_CONEXANT \
                -DCONFIG_SND_HDA_CODEC_VIA

My box works again. The chip for my HP nc6320 detects as a AD1981, thus requires the CONFIG_SND_HDA_CODEC_ANALOG option.

In the kernel sources, the unused HDA driver has in hda_patch.h

static const struct hda_codec_preset *hda_preset_tables[] = {
 snd_hda_preset_realtek,
 snd_hda_preset_cmedia,
 snd_hda_preset_analog,
 snd_hda_preset_sigmatel,
 snd_hda_preset_si3054,
 snd_hda_preset_atihdmi,
 snd_hda_preset_conexant,
 snd_hda_preset_via,
 NULL
};

in the l-u-m version in hda_patch.h:

static const struct hda_codec_preset *hda_preset_tables[] = {
#ifdef CONFIG_SND_HDA_CODEC_REALTEK
        snd_hda_preset_realtek,
#endif
#ifdef CONFIG_SND_HDA_CODEC_CMEDIA
        snd_hda_preset_cmedia,
#endif
#ifdef CONFIG_SND_HDA_CODEC_ANALOG
        snd_hda_preset_analog,
#endif
#ifdef CONFIG_SND_HDA_CODEC_SIGMATEL
        snd_hda_preset_sigmatel,
#endif
#ifdef CONFIG_SND_HDA_CODEC_SI3054
        snd_hda_preset_si3054,
#endif
#ifdef CONFIG_SND_HDA_CODEC_ATIHDMI
        snd_hda_preset_atihdmi,
#endif
#ifdef CONFIG_SND_HDA_CODEC_CONEXANT
        snd_hda_preset_conexant,
#endif
#ifdef CONFIG_SND_HDA_CODEC_VIA
        snd_hda_preset_via,
#endif
        NULL
};

Presumably we want to build all of these. CONFIG_SND_HDA_GENERIC isn't used in the linux kernel version either, just l-u-m.

Regards,

Peter Clifton