diff options
author | Hui Wang <hui.wang@canonical.com> | 2014-05-26 04:22:44 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-05-26 05:06:22 -0400 |
commit | e191893830b4698e9036daedd7e5a928d3f0b197 (patch) | |
tree | da16eb26698cd8afc029fb2b45ede752e466720a /sound/pci | |
parent | c687200b9d4ef60042a50f7d942cfef120cc7bf1 (diff) |
ALSA: hda - add an instance to use snd_hda_pick_pin_fixup
Just two members in the alc269_pin_fixup_tbl[] can cover more than
10 Dell laptop models.
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index e603221b1875..951017168e37 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -4725,8 +4725,6 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
4725 | SND_PCI_QUIRK(0x1028, 0x061f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), | 4725 | SND_PCI_QUIRK(0x1028, 0x061f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), |
4726 | SND_PCI_QUIRK(0x1028, 0x0629, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 4726 | SND_PCI_QUIRK(0x1028, 0x0629, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
4727 | SND_PCI_QUIRK(0x1028, 0x062c, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 4727 | SND_PCI_QUIRK(0x1028, 0x062c, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
4728 | SND_PCI_QUIRK(0x1028, 0x062e, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | ||
4729 | SND_PCI_QUIRK(0x1028, 0x0632, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), | ||
4730 | SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS_HSJACK), | 4728 | SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS_HSJACK), |
4731 | SND_PCI_QUIRK(0x1028, 0x063e, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 4729 | SND_PCI_QUIRK(0x1028, 0x063e, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
4732 | SND_PCI_QUIRK(0x1028, 0x063f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), | 4730 | SND_PCI_QUIRK(0x1028, 0x063f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), |
@@ -4921,6 +4919,50 @@ static const struct hda_model_fixup alc269_fixup_models[] = { | |||
4921 | {} | 4919 | {} |
4922 | }; | 4920 | }; |
4923 | 4921 | ||
4922 | static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { | ||
4923 | { | ||
4924 | .codec = 0x10ec0293, | ||
4925 | .subvendor = 0x1028, | ||
4926 | #ifdef CONFIG_SND_DEBUG_VERBOSE | ||
4927 | .name = "Dell", | ||
4928 | #endif | ||
4929 | .pins = (const struct hda_pintbl[]) { | ||
4930 | {0x12, 0x40000000}, | ||
4931 | {0x13, 0x90a60140}, | ||
4932 | {0x14, 0x90170110}, | ||
4933 | {0x15, 0x0221401f}, | ||
4934 | {0x16, 0x21014020}, | ||
4935 | {0x18, 0x411111f0}, | ||
4936 | {0x19, 0x21a19030}, | ||
4937 | {0x1a, 0x411111f0}, | ||
4938 | {0x1b, 0x411111f0}, | ||
4939 | {0x1d, 0x40700001}, | ||
4940 | {0x1e, 0x411111f0}, | ||
4941 | }, | ||
4942 | .value = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, | ||
4943 | }, | ||
4944 | { | ||
4945 | .codec = 0x10ec0255, | ||
4946 | .subvendor = 0x1028, | ||
4947 | #ifdef CONFIG_SND_DEBUG_VERBOSE | ||
4948 | .name = "Dell", | ||
4949 | #endif | ||
4950 | .pins = (const struct hda_pintbl[]) { | ||
4951 | {0x12, 0x90a60140}, | ||
4952 | {0x14, 0x90170110}, | ||
4953 | {0x17, 0x40000000}, | ||
4954 | {0x18, 0x411111f0}, | ||
4955 | {0x19, 0x411111f0}, | ||
4956 | {0x1a, 0x411111f0}, | ||
4957 | {0x1b, 0x411111f0}, | ||
4958 | {0x1d, 0x40700001}, | ||
4959 | {0x1e, 0x411111f0}, | ||
4960 | {0x21, 0x02211020}, | ||
4961 | }, | ||
4962 | .value = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, | ||
4963 | }, | ||
4964 | {} | ||
4965 | }; | ||
4924 | 4966 | ||
4925 | static void alc269_fill_coef(struct hda_codec *codec) | 4967 | static void alc269_fill_coef(struct hda_codec *codec) |
4926 | { | 4968 | { |
@@ -4982,6 +5024,7 @@ static int patch_alc269(struct hda_codec *codec) | |||
4982 | 5024 | ||
4983 | snd_hda_pick_fixup(codec, alc269_fixup_models, | 5025 | snd_hda_pick_fixup(codec, alc269_fixup_models, |
4984 | alc269_fixup_tbl, alc269_fixups); | 5026 | alc269_fixup_tbl, alc269_fixups); |
5027 | snd_hda_pick_pin_fixup(codec, alc269_pin_fixup_tbl, alc269_fixups); | ||
4985 | snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); | 5028 | snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); |
4986 | 5029 | ||
4987 | alc_auto_parse_customize_define(codec); | 5030 | alc_auto_parse_customize_define(codec); |