diff options
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 1ad079cc0452..ba2b982b47ea 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -3602,11 +3602,6 @@ static void alc283_hp_automute_hook(struct hda_codec *codec, | |||
| 3602 | vref); | 3602 | vref); |
| 3603 | } | 3603 | } |
| 3604 | 3604 | ||
| 3605 | static void alc283_chromebook_caps(struct hda_codec *codec) | ||
| 3606 | { | ||
| 3607 | snd_hda_override_wcaps(codec, 0x03, 0); | ||
| 3608 | } | ||
| 3609 | |||
| 3610 | static void alc283_fixup_chromebook(struct hda_codec *codec, | 3605 | static void alc283_fixup_chromebook(struct hda_codec *codec, |
| 3611 | const struct hda_fixup *fix, int action) | 3606 | const struct hda_fixup *fix, int action) |
| 3612 | { | 3607 | { |
| @@ -3615,19 +3610,34 @@ static void alc283_fixup_chromebook(struct hda_codec *codec, | |||
| 3615 | 3610 | ||
| 3616 | switch (action) { | 3611 | switch (action) { |
| 3617 | case HDA_FIXUP_ACT_PRE_PROBE: | 3612 | case HDA_FIXUP_ACT_PRE_PROBE: |
| 3618 | alc283_chromebook_caps(codec); | 3613 | snd_hda_override_wcaps(codec, 0x03, 0); |
| 3619 | /* Disable AA-loopback as it causes white noise */ | 3614 | /* Disable AA-loopback as it causes white noise */ |
| 3620 | spec->gen.mixer_nid = 0; | 3615 | spec->gen.mixer_nid = 0; |
| 3621 | spec->gen.hp_automute_hook = alc283_hp_automute_hook; | 3616 | spec->gen.hp_automute_hook = alc283_hp_automute_hook; |
| 3622 | break; | 3617 | break; |
| 3623 | case HDA_FIXUP_ACT_INIT: | 3618 | case HDA_FIXUP_ACT_INIT: |
| 3619 | /* Enable Line1 input control by verb */ | ||
| 3620 | val = alc_read_coef_idx(codec, 0x1a); | ||
| 3621 | alc_write_coef_idx(codec, 0x1a, val | (1 << 4)); | ||
| 3622 | break; | ||
| 3623 | } | ||
| 3624 | } | ||
| 3625 | |||
| 3626 | static void alc283_fixup_sense_combo_jack(struct hda_codec *codec, | ||
| 3627 | const struct hda_fixup *fix, int action) | ||
| 3628 | { | ||
| 3629 | struct alc_spec *spec = codec->spec; | ||
| 3630 | int val; | ||
| 3631 | |||
| 3632 | switch (action) { | ||
| 3633 | case HDA_FIXUP_ACT_PRE_PROBE: | ||
| 3634 | spec->gen.hp_automute_hook = alc283_hp_automute_hook; | ||
| 3635 | break; | ||
| 3636 | case HDA_FIXUP_ACT_INIT: | ||
| 3624 | /* MIC2-VREF control */ | 3637 | /* MIC2-VREF control */ |
| 3625 | /* Set to manual mode */ | 3638 | /* Set to manual mode */ |
| 3626 | val = alc_read_coef_idx(codec, 0x06); | 3639 | val = alc_read_coef_idx(codec, 0x06); |
| 3627 | alc_write_coef_idx(codec, 0x06, val & ~0x000c); | 3640 | alc_write_coef_idx(codec, 0x06, val & ~0x000c); |
| 3628 | /* Enable Line1 input control by verb */ | ||
| 3629 | val = alc_read_coef_idx(codec, 0x1a); | ||
| 3630 | alc_write_coef_idx(codec, 0x1a, val | (1 << 4)); | ||
| 3631 | break; | 3641 | break; |
| 3632 | } | 3642 | } |
| 3633 | } | 3643 | } |
| @@ -3823,6 +3833,7 @@ enum { | |||
| 3823 | ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED, | 3833 | ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED, |
| 3824 | ALC269VB_FIXUP_ORDISSIMO_EVE2, | 3834 | ALC269VB_FIXUP_ORDISSIMO_EVE2, |
| 3825 | ALC283_FIXUP_CHROME_BOOK, | 3835 | ALC283_FIXUP_CHROME_BOOK, |
| 3836 | ALC283_FIXUP_SENSE_COMBO_JACK, | ||
| 3826 | ALC282_FIXUP_ASUS_TX300, | 3837 | ALC282_FIXUP_ASUS_TX300, |
| 3827 | ALC283_FIXUP_INT_MIC, | 3838 | ALC283_FIXUP_INT_MIC, |
| 3828 | ALC290_FIXUP_MONO_SPEAKERS, | 3839 | ALC290_FIXUP_MONO_SPEAKERS, |
| @@ -4122,6 +4133,12 @@ static const struct hda_fixup alc269_fixups[] = { | |||
| 4122 | .type = HDA_FIXUP_FUNC, | 4133 | .type = HDA_FIXUP_FUNC, |
| 4123 | .v.func = alc283_fixup_chromebook, | 4134 | .v.func = alc283_fixup_chromebook, |
| 4124 | }, | 4135 | }, |
| 4136 | [ALC283_FIXUP_SENSE_COMBO_JACK] = { | ||
| 4137 | .type = HDA_FIXUP_FUNC, | ||
| 4138 | .v.func = alc283_fixup_sense_combo_jack, | ||
| 4139 | .chained = true, | ||
| 4140 | .chain_id = ALC283_FIXUP_CHROME_BOOK, | ||
| 4141 | }, | ||
| 4125 | [ALC282_FIXUP_ASUS_TX300] = { | 4142 | [ALC282_FIXUP_ASUS_TX300] = { |
| 4126 | .type = HDA_FIXUP_FUNC, | 4143 | .type = HDA_FIXUP_FUNC, |
| 4127 | .v.func = alc282_fixup_asus_tx300, | 4144 | .v.func = alc282_fixup_asus_tx300, |
| @@ -4213,7 +4230,6 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
| 4213 | SND_PCI_QUIRK(0x103c, 0x1973, "HP Pavilion", ALC269_FIXUP_HP_MUTE_LED_MIC1), | 4230 | SND_PCI_QUIRK(0x103c, 0x1973, "HP Pavilion", ALC269_FIXUP_HP_MUTE_LED_MIC1), |
| 4214 | SND_PCI_QUIRK(0x103c, 0x1983, "HP Pavilion", ALC269_FIXUP_HP_MUTE_LED_MIC1), | 4231 | SND_PCI_QUIRK(0x103c, 0x1983, "HP Pavilion", ALC269_FIXUP_HP_MUTE_LED_MIC1), |
| 4215 | SND_PCI_QUIRK(0x103c, 0x218b, "HP", ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED), | 4232 | SND_PCI_QUIRK(0x103c, 0x218b, "HP", ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED), |
| 4216 | SND_PCI_QUIRK(0x103c, 0x21ed, "HP Falco Chromebook", ALC283_FIXUP_CHROME_BOOK), | ||
| 4217 | SND_PCI_QUIRK_VENDOR(0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED), | 4233 | SND_PCI_QUIRK_VENDOR(0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED), |
| 4218 | SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), | 4234 | SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), |
| 4219 | SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), | 4235 | SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
| @@ -4321,6 +4337,8 @@ static const struct hda_model_fixup alc269_fixup_models[] = { | |||
| 4321 | {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"}, | 4337 | {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"}, |
| 4322 | {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"}, | 4338 | {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"}, |
| 4323 | {.id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, .name = "dell-headset-dock"}, | 4339 | {.id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, .name = "dell-headset-dock"}, |
| 4340 | {.id = ALC283_FIXUP_CHROME_BOOK, .name = "alc283-chrome"}, | ||
| 4341 | {.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"}, | ||
| 4324 | {} | 4342 | {} |
| 4325 | }; | 4343 | }; |
| 4326 | 4344 | ||
