forked from Minki/linux
ALSA: hda - Define a fallback_pin_fixup_tbl for alc269 family
We have another Dell laptop which needs the DELL4_MIC_NO_PRESENCE, and this laptop has different pincfg definitions from existing ones in the pintbl, rather adding a new entry, let us define a tbl in the fallback_pin_fixup_tbl and this tbl will match all dell machines with alc289 codec and the pins of 0x19 and 0x1b are undef by default. Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
0fc1e447e9
commit
7c0a69394c
@ -7656,10 +7656,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
|
||||
{0x12, 0x90a60120},
|
||||
{0x14, 0x90170110},
|
||||
{0x21, 0x0321101f}),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
|
||||
{0x12, 0xb7a60130},
|
||||
{0x14, 0x90170110},
|
||||
{0x21, 0x04211020}),
|
||||
SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
|
||||
ALC290_STANDARD_PINS,
|
||||
{0x15, 0x04211040},
|
||||
@ -7769,6 +7765,19 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
|
||||
{}
|
||||
};
|
||||
|
||||
/* This is the fallback pin_fixup_tbl for alc269 family, to make the tbl match
|
||||
* more machines, don't need to match all valid pins, just need to match
|
||||
* all the pins defined in the tbl. Just because of this reason, it is possible
|
||||
* that a single machine matches multiple tbls, so there is one limitation:
|
||||
* at most one tbl is allowed to define for the same vendor and same codec
|
||||
*/
|
||||
static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = {
|
||||
SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
|
||||
{0x19, 0x40000000},
|
||||
{0x1b, 0x40000000}),
|
||||
{}
|
||||
};
|
||||
|
||||
static void alc269_fill_coef(struct hda_codec *codec)
|
||||
{
|
||||
struct alc_spec *spec = codec->spec;
|
||||
@ -7959,6 +7968,7 @@ static int patch_alc269(struct hda_codec *codec)
|
||||
snd_hda_pick_fixup(codec, alc269_fixup_models,
|
||||
alc269_fixup_tbl, alc269_fixups);
|
||||
snd_hda_pick_pin_fixup(codec, alc269_pin_fixup_tbl, alc269_fixups, true);
|
||||
snd_hda_pick_pin_fixup(codec, alc269_fallback_pin_fixup_tbl, alc269_fixups, false);
|
||||
snd_hda_pick_fixup(codec, NULL, alc269_fixup_vendor_tbl,
|
||||
alc269_fixups);
|
||||
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
|
||||
|
Loading…
Reference in New Issue
Block a user