From fa11a57726a5842835184165b061d50136600bc9 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Sat, 26 Oct 2024 11:33:13 -0400 Subject: [PATCH] Fixes for 4.19 Signed-off-by: Sasha Levin --- ...altek-update-default-depop-procedure.patch | 88 +++++++++++++++++++ queue-4.19/series | 1 + 2 files changed, 89 insertions(+) create mode 100644 queue-4.19/alsa-hda-realtek-update-default-depop-procedure.patch diff --git a/queue-4.19/alsa-hda-realtek-update-default-depop-procedure.patch b/queue-4.19/alsa-hda-realtek-update-default-depop-procedure.patch new file mode 100644 index 00000000000..c2c08aad4a5 --- /dev/null +++ b/queue-4.19/alsa-hda-realtek-update-default-depop-procedure.patch @@ -0,0 +1,88 @@ +From 8eb30ff3eba2988746740c4e1a1c14d538980db9 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 23 Oct 2024 16:13:10 +0800 +Subject: ALSA: hda/realtek: Update default depop procedure + +From: Kailang Yang + +[ Upstream commit e3ea2757c312e51bbf62ebc434a6f7df1e3a201f ] + +Old procedure has a chance to meet Headphone no output. + +Fixes: c2d6af53a43f ("ALSA: hda/realtek - Add default procedure for suspend and resume state") +Signed-off-by: Kailang Yang +Link: https://lore.kernel.org/17b717a0a0b04a77aea4a8ec820cba13@realtek.com +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/pci/hda/patch_realtek.c | 38 ++++++++++++++++------------------- + 1 file changed, 17 insertions(+), 21 deletions(-) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 60dfaf2adaaf5..f33d09d939e14 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -3537,20 +3537,18 @@ static void alc_default_init(struct hda_codec *codec) + + hp_pin_sense = snd_hda_jack_detect(codec, hp_pin); + +- if (hp_pin_sense) ++ if (hp_pin_sense) { + msleep(2); + +- snd_hda_codec_write(codec, hp_pin, 0, +- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE); +- +- if (hp_pin_sense) +- msleep(85); ++ snd_hda_codec_write(codec, hp_pin, 0, ++ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT); + +- snd_hda_codec_write(codec, hp_pin, 0, +- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT); ++ msleep(75); + +- if (hp_pin_sense) +- msleep(100); ++ snd_hda_codec_write(codec, hp_pin, 0, ++ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); ++ msleep(75); ++ } + } + + static void alc_default_shutup(struct hda_codec *codec) +@@ -3566,22 +3564,20 @@ static void alc_default_shutup(struct hda_codec *codec) + + hp_pin_sense = snd_hda_jack_detect(codec, hp_pin); + +- if (hp_pin_sense) ++ if (hp_pin_sense) { + msleep(2); + +- snd_hda_codec_write(codec, hp_pin, 0, +- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE); +- +- if (hp_pin_sense) +- msleep(85); +- +- if (!spec->no_shutup_pins) + snd_hda_codec_write(codec, hp_pin, 0, +- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0); ++ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE); + +- if (hp_pin_sense) +- msleep(100); ++ msleep(75); + ++ if (!spec->no_shutup_pins) ++ snd_hda_codec_write(codec, hp_pin, 0, ++ AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0); ++ ++ msleep(75); ++ } + alc_auto_setup_eapd(codec, false); + alc_shutup_pins(codec); + } +-- +2.43.0 + diff --git a/queue-4.19/series b/queue-4.19/series index 309d1df831d..e5188d42542 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -312,3 +312,4 @@ be2net-fix-potential-memory-leak-in-be_xmit.patch dt-bindings-power-add-r8a774b1-sysc-power-domain-def.patch net-usb-usbnet-fix-name-regression.patch posix-clock-posix-clock-fix-unbalanced-locking-in-pc.patch +alsa-hda-realtek-update-default-depop-procedure.patch -- 2.47.2