mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christian Lachner <gladiac@gmail.com>
To: perex@perex.cz, tiwai@suse.com, kailang@realtek.com
Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org,
	Christian Lachner <gladiac@gmail.com>
Subject: [PATCH 0/1] ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after reboot from Windows
Date: Fri, 31 Dec 2021 11:21:37 +0100	[thread overview]
Message-ID: <20211231102138.3226-1-gladiac@gmail.com> (raw)

This patch addresses an issue where after rebooting from Windows into Linux
there would be no audio output.

It turns out that the Realtek Audio driver on Windows changes some coeffs
which are not being reset/reinitialized when rebooting the machine. As a
result, there is no audio output until these coeffs are being reset to
their initial state. This patch takes care of that by setting known-good
(initial) values to the coeffs.

The coeffs were collected via alsa-info, see:
  broken: https://pastebin.com/4bRBSseH
  working: https://pastebin.com/WUTufvZB

I also created a script which fixes the audio at runtime.

 #!/bin/sh
 hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x1a
 hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x01c1
 hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x1b
 hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x0202
 hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x43
 hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x3005
 hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x58
 hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x8fd6
 hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x5f
 hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0xa3c5
 hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x6a
 hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x0232

However, obviously, we can and should fix this in the kernel.

We initially relied upon alc1220_fixup_clevo_p950() to fix some pins in the
connection list. However, it also sets coef 0x7 which does not need to be
touched. Furthermore, to prevent mixing device-specific quirks I introduced
a new alc1220_fixup_gb_x570() which is heavily based on
alc1220_fixup_clevo_p950() but does not set coeff 0x7 and fixes the coeffs
that are actually needed instead.

This new alc1220_fixup_gb_x570() is believed to also work for other boards,
like the Gigabyte X570 Aorus Extreme and the newer Gigabyte Aorus X570S
Master. However, as there is no way for me to test these I initially only
enable this new behaviour for the mainboard I have which is the Gigabyte
X570(non-S) Aorus Master.

I tested this patch on the 5.15 branch as well as on master and it is
working well for me.

Christian Lachner (1):
  ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master
    after reboot from Windows

 sound/pci/hda/patch_realtek.c | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

-- 
2.34.1


             reply	other threads:[~2021-12-31 10:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-31 10:21 Christian Lachner [this message]
2021-12-31 10:21 ` [PATCH 1/1] " Christian Lachner
2021-12-31 17:14   ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211231102138.3226-1-gladiac@gmail.com \
    --to=gladiac@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=kailang@realtek.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®