diff options
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 0e303b99a47c..52c26d3a61d4 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -3496,6 +3496,15 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec, | |||
3496 | } | 3496 | } |
3497 | } | 3497 | } |
3498 | 3498 | ||
3499 | static void alc290_fixup_mono_speakers(struct hda_codec *codec, | ||
3500 | const struct hda_fixup *fix, int action) | ||
3501 | { | ||
3502 | if (action == HDA_FIXUP_ACT_PRE_PROBE) | ||
3503 | /* Remove DAC node 0x03, as it seems to be | ||
3504 | giving mono output */ | ||
3505 | snd_hda_override_wcaps(codec, 0x03, 0); | ||
3506 | } | ||
3507 | |||
3499 | enum { | 3508 | enum { |
3500 | ALC269_FIXUP_SONY_VAIO, | 3509 | ALC269_FIXUP_SONY_VAIO, |
3501 | ALC275_FIXUP_SONY_VAIO_GPIO2, | 3510 | ALC275_FIXUP_SONY_VAIO_GPIO2, |
@@ -3522,6 +3531,7 @@ enum { | |||
3522 | ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, | 3531 | ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, |
3523 | ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, | 3532 | ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, |
3524 | ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, | 3533 | ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, |
3534 | ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, | ||
3525 | ALC269_FIXUP_HEADSET_MODE, | 3535 | ALC269_FIXUP_HEADSET_MODE, |
3526 | ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC, | 3536 | ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC, |
3527 | ALC269_FIXUP_ASUS_X101_FUNC, | 3537 | ALC269_FIXUP_ASUS_X101_FUNC, |
@@ -3535,6 +3545,7 @@ enum { | |||
3535 | ALC283_FIXUP_CHROME_BOOK, | 3545 | ALC283_FIXUP_CHROME_BOOK, |
3536 | ALC282_FIXUP_ASUS_TX300, | 3546 | ALC282_FIXUP_ASUS_TX300, |
3537 | ALC283_FIXUP_INT_MIC, | 3547 | ALC283_FIXUP_INT_MIC, |
3548 | ALC290_FIXUP_MONO_SPEAKERS, | ||
3538 | }; | 3549 | }; |
3539 | 3550 | ||
3540 | static const struct hda_fixup alc269_fixups[] = { | 3551 | static const struct hda_fixup alc269_fixups[] = { |
@@ -3712,6 +3723,15 @@ static const struct hda_fixup alc269_fixups[] = { | |||
3712 | .chained = true, | 3723 | .chained = true, |
3713 | .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC | 3724 | .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC |
3714 | }, | 3725 | }, |
3726 | [ALC269_FIXUP_DELL3_MIC_NO_PRESENCE] = { | ||
3727 | .type = HDA_FIXUP_PINS, | ||
3728 | .v.pins = (const struct hda_pintbl[]) { | ||
3729 | { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */ | ||
3730 | { } | ||
3731 | }, | ||
3732 | .chained = true, | ||
3733 | .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC | ||
3734 | }, | ||
3715 | [ALC269_FIXUP_HEADSET_MODE] = { | 3735 | [ALC269_FIXUP_HEADSET_MODE] = { |
3716 | .type = HDA_FIXUP_FUNC, | 3736 | .type = HDA_FIXUP_FUNC, |
3717 | .v.func = alc_fixup_headset_mode, | 3737 | .v.func = alc_fixup_headset_mode, |
@@ -3804,6 +3824,12 @@ static const struct hda_fixup alc269_fixups[] = { | |||
3804 | .chained = true, | 3824 | .chained = true, |
3805 | .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST | 3825 | .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST |
3806 | }, | 3826 | }, |
3827 | [ALC290_FIXUP_MONO_SPEAKERS] = { | ||
3828 | .type = HDA_FIXUP_FUNC, | ||
3829 | .v.func = alc290_fixup_mono_speakers, | ||
3830 | .chained = true, | ||
3831 | .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, | ||
3832 | }, | ||
3807 | }; | 3833 | }; |
3808 | 3834 | ||
3809 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { | 3835 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
@@ -3845,6 +3871,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
3845 | SND_PCI_QUIRK(0x1028, 0x0608, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 3871 | SND_PCI_QUIRK(0x1028, 0x0608, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
3846 | SND_PCI_QUIRK(0x1028, 0x0609, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 3872 | SND_PCI_QUIRK(0x1028, 0x0609, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
3847 | SND_PCI_QUIRK(0x1028, 0x0613, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 3873 | SND_PCI_QUIRK(0x1028, 0x0613, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
3874 | SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS), | ||
3848 | SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), | 3875 | SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), |
3849 | SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), | 3876 | SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), |
3850 | SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), | 3877 | SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), |