diff options
author | Takashi Iwai <tiwai@suse.de> | 2019-08-30 12:03:38 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2019-08-30 12:03:38 +0200 |
commit | 89781d0806c2c4f29072d3f00cb2dd4274aabc3d (patch) | |
tree | b70b7172d45ece9ce813355589d2ea4406f49a51 /sound/pci/hda/hda_generic.c | |
parent | ALSA: hda - Fix potential endless loop at applying quirks (diff) | |
download | linux-89781d0806c2c4f29072d3f00cb2dd4274aabc3d.tar.xz linux-89781d0806c2c4f29072d3f00cb2dd4274aabc3d.zip |
ALSA: hda/realtek - Fix overridden device-specific initialization
The recent change to shuffle the codec initialization procedure for
Realtek via commit 607ca3bd220f ("ALSA: hda/realtek - EAPD turn on
later") caused the silent output on some machines. This change was
supposed to be safe, but it isn't actually; some devices have quirk
setups to override the EAPD via COEF or BTL in the additional verb
table, which is applied at the beginning of snd_hda_gen_init(). And
this EAPD setup is again overridden in alc_auto_init_amp().
For recovering from the regression, tell snd_hda_gen_init() not to
apply the verbs there by a new flag, then apply the verbs in
alc_init().
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204727
Fixes: 607ca3bd220f ("ALSA: hda/realtek - EAPD turn on later")
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_generic.c')
-rw-r--r-- | sound/pci/hda/hda_generic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index 5bf24fb819d2..10d502328b76 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -6009,7 +6009,8 @@ int snd_hda_gen_init(struct hda_codec *codec) if (spec->init_hook) spec->init_hook(codec); - snd_hda_apply_verbs(codec); + if (!spec->skip_verbs) + snd_hda_apply_verbs(codec); init_multi_out(codec); init_extra_out(codec); |