| From 41a8601302ecbe704ac970552c33dc942300fc37 Mon Sep 17 00:00:00 2001 |
| From: Christian Lachner <gladiac@gmail.com> |
| Date: Sat, 29 Jan 2022 12:32:42 +0100 |
| Subject: ALSA: hda/realtek: Fix silent output on Gigabyte X570S Aorus Master (newer chipset) |
| |
| From: Christian Lachner <gladiac@gmail.com> |
| |
| commit 41a8601302ecbe704ac970552c33dc942300fc37 upstream. |
| |
| Newer versions of the X570 Master come with a newer revision of the |
| mainboard chipset - the X570S. These boards have the same ALC1220 codec |
| but seem to initialize the codec with a different parameter in Coef 0x7 |
| which causes the output audio to be very low. We therefore write a |
| known-good value to Coef 0x7 to fix that. As the value is the exact same |
| as on the other X570(non-S) boards the same quirk-function can be shared |
| between both generations. |
| |
| This commit adds the Gigabyte X570S Aorus Master to the list of boards |
| using the ALC1220_FIXUP_GB_X570 quirk. This fixes both, the silent output |
| and the no-audio after reboot from windows problems. |
| |
| This work has been tested by the folks over at the level1techs forum here: |
| https://forum.level1techs.com/t/has-anybody-gotten-audio-working-in-linux-on-aorus-x570-master/154072 |
| |
| Signed-off-by: Christian Lachner <gladiac@gmail.com> |
| Cc: <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20220129113243.93068-3-gladiac@gmail.com |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/pci/hda/patch_realtek.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -2171,6 +2171,7 @@ static void alc1220_fixup_gb_x570(struct |
| { |
| static const hda_nid_t conn1[] = { 0x0c }; |
| static const struct coef_fw gb_x570_coefs[] = { |
| + WRITE_COEF(0x07, 0x03c0), |
| WRITE_COEF(0x1a, 0x01c1), |
| WRITE_COEF(0x1b, 0x0202), |
| WRITE_COEF(0x43, 0x3005), |
| @@ -2598,6 +2599,7 @@ static const struct snd_pci_quirk alc882 |
| SND_PCI_QUIRK(0x1458, 0xa0b8, "Gigabyte AZ370-Gaming", ALC1220_FIXUP_GB_DUAL_CODECS), |
| SND_PCI_QUIRK(0x1458, 0xa0cd, "Gigabyte X570 Aorus Master", ALC1220_FIXUP_GB_X570), |
| SND_PCI_QUIRK(0x1458, 0xa0ce, "Gigabyte X570 Aorus Xtreme", ALC1220_FIXUP_CLEVO_P950), |
| + SND_PCI_QUIRK(0x1458, 0xa0d5, "Gigabyte X570S Aorus Master", ALC1220_FIXUP_GB_X570), |
| SND_PCI_QUIRK(0x1462, 0x11f7, "MSI-GE63", ALC1220_FIXUP_CLEVO_P950), |
| SND_PCI_QUIRK(0x1462, 0x1228, "MSI-GP63", ALC1220_FIXUP_CLEVO_P950), |
| SND_PCI_QUIRK(0x1462, 0x1229, "MSI-GP73", ALC1220_FIXUP_CLEVO_P950), |