aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorHui Wang <hui.wang@canonical.com>2014-05-26 04:22:44 -0400
committerTakashi Iwai <tiwai@suse.de>2014-05-26 05:06:22 -0400
commite191893830b4698e9036daedd7e5a928d3f0b197 (patch)
treeda16eb26698cd8afc029fb2b45ede752e466720a /sound/pci
parentc687200b9d4ef60042a50f7d942cfef120cc7bf1 (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.c47
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
4922static 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
4925static void alc269_fill_coef(struct hda_codec *codec) 4967static 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);