FAILED: patch "[PATCH] ALSA: hda/realtek: Update ALC225 depop procedure" failed to apply to 4.19-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-4.19.y
git checkout FETCH_HEAD
git cherry-pick -x 1fd50509fe14a9adc9329e0454b986157a4c155a
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024120303-talcum-editor-4060@gregkh' --subject-prefix 'PATCH 4.19.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 1fd50509fe14a9adc9329e0454b986157a4c155a Mon Sep 17 00:00:00 2001
From: Kailang Yang <[email protected]>
Date: Thu, 14 Nov 2024 15:08:07 +0800
Subject: [PATCH] ALSA: hda/realtek: Update ALC225 depop procedure
Old procedure has a chance to meet Headphone no output.
sound/pci/hda/patch_realtek.c +39 -48
@@ -3768,33 +3768,28 @@ static void alc225_init(struct hda_codec *codec) hp1_pin_sense =snd_hda_jack_detect (codec, hp_pin); hp2_pin_sense =snd_hda_jack_detect (codec,0x16 ); -if (hp1_pin_sense || hp2_pin_sense) +if (hp1_pin_sense || hp2_pin_sense) {msleep (2 ); +alc_update_coefex_idx (codec,0x57 ,0x04 ,0x0007 ,0x1 );/* Low power */ -alc_update_coefex_idx (codec,0x57 ,0x04 ,0x0007 ,0x1 );/* Low power */ +if (hp1_pin_sense) +snd_hda_codec_write (codec, hp_pin,0 , +AC_VERB_SET_PIN_WIDGET_CONTROL ,PIN_OUT ); +if (hp2_pin_sense) +snd_hda_codec_write (codec,0x16 ,0 , +AC_VERB_SET_PIN_WIDGET_CONTROL ,PIN_OUT ); +msleep (75 ); -if (hp1_pin_sense || spec->ultra_low_power) -snd_hda_codec_write (codec, hp_pin,0 , -AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_MUTE ); -if (hp2_pin_sense) -snd_hda_codec_write (codec,0x16 ,0 , -AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_MUTE ); +if (hp1_pin_sense) +snd_hda_codec_write (codec, hp_pin,0 , +AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_UNMUTE ); +if (hp2_pin_sense) +snd_hda_codec_write (codec,0x16 ,0 , +AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_UNMUTE ); -if (hp1_pin_sense || hp2_pin_sense || spec->ultra_low_power) -msleep (85 ); - -if (hp1_pin_sense || spec->ultra_low_power) -snd_hda_codec_write (codec, hp_pin,0 , -AC_VERB_SET_PIN_WIDGET_CONTROL ,PIN_OUT ); -if (hp2_pin_sense) -snd_hda_codec_write (codec,0x16 ,0 , -AC_VERB_SET_PIN_WIDGET_CONTROL ,PIN_OUT ); - -if (hp1_pin_sense || hp2_pin_sense || spec->ultra_low_power) -msleep (100 ); - -alc_update_coef_idx (codec,0x4a ,3 <<10 ,0 ); -alc_update_coefex_idx (codec,0x57 ,0x04 ,0x0007 ,0x4 );/* Hight power */ +msleep (75 ); +alc_update_coefex_idx (codec,0x57 ,0x04 ,0x0007 ,0x4 );/* Hight power */ + } }static void alc225_shutup (struct hda_codec *codec)
@@ -3806,36 +3801,35 @@ static void alc225_shutup(struct hda_codec *codec)if (!hp_pin) hp_pin =0x21 ; -alc_disable_headset_jack_key (codec); -/* 3k pull low control for Headset jack. */ -alc_update_coef_idx (codec,0x4a ,0 ,3 <<10 ); - hp1_pin_sense =snd_hda_jack_detect (codec, hp_pin); hp2_pin_sense =snd_hda_jack_detect (codec,0x16 ); -if (hp1_pin_sense || hp2_pin_sense) +if (hp1_pin_sense || hp2_pin_sense) { +alc_disable_headset_jack_key (codec); +/* 3k pull low control for Headset jack. */ +alc_update_coef_idx (codec,0x4a ,0 ,3 <<10 );msleep (2 ); -if (hp1_pin_sense || spec->ultra_low_power) -snd_hda_codec_write (codec, hp_pin,0 , -AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_MUTE ); -if (hp2_pin_sense) -snd_hda_codec_write (codec,0x16 ,0 , -AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_MUTE ); +if (hp1_pin_sense) +snd_hda_codec_write (codec, hp_pin,0 , +AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_MUTE ); +if (hp2_pin_sense) +snd_hda_codec_write (codec,0x16 ,0 , +AC_VERB_SET_AMP_GAIN_MUTE ,AMP_OUT_MUTE ); -if (hp1_pin_sense || hp2_pin_sense || spec->ultra_low_power) -msleep (85 ); +msleep (75 ); -if (hp1_pin_sense || spec->ultra_low_power) -snd_hda_codec_write (codec, hp_pin,0 , -AC_VERB_SET_PIN_WIDGET_CONTROL ,0x0 ); -if (hp2_pin_sense) -snd_hda_codec_write (codec,0x16 ,0 , -AC_VERB_SET_PIN_WIDGET_CONTROL ,0x0 ); - -if (hp1_pin_sense || hp2_pin_sense || spec->ultra_low_power) -msleep (100 ); +if (hp1_pin_sense) +snd_hda_codec_write (codec, hp_pin,0 , +AC_VERB_SET_PIN_WIDGET_CONTROL ,0x0 ); +if (hp2_pin_sense) +snd_hda_codec_write (codec,0x16 ,0 , +AC_VERB_SET_PIN_WIDGET_CONTROL ,0x0 ); +msleep (75 ); +alc_update_coef_idx (codec,0x4a ,3 <<10 ,0 ); +alc_enable_headset_jack_key (codec); + }alc_auto_setup_eapd (codec, false);alc_shutup_pins (codec);if (spec->ultra_low_power) {
@@ -3846,9 +3840,6 @@ static void alc225_shutup(struct hda_codec *codec)alc_update_coef_idx (codec,0x4a ,3 <<4 ,2 <<4 );msleep (30 ); } - -alc_update_coef_idx (codec,0x4a ,3 <<10 ,0 ); -alc_enable_headset_jack_key (codec); }static void alc_default_init (struct hda_codec *codec)