Skip to content

Commit f4b3cef

Browse files
KailangYangtiwai
authored andcommitted
ALSA: hda/realtek: Audio disappears on HP 15-fc000 after warm boot again
There was a similar bug in the past (Bug 217440), which was fixed for this laptop. The same issue is occurring again as of kernel v.6.12.2. The symptoms are very similar - initially audio works but after a warm reboot, the audio completely disappears until the computer is powered off (there is no audio output at all). The issue is also related by caused by a different change now. By bisecting different kernel versions, I found that reverting cc3d0b5 in patch_realtek.c[*] restores the sound and it works fine after the reboot. [*] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/sound/pci/hda/patch_realtek.c?h=v6.12.2&id=4ed7f16070a8475c088ff423b2eb11ba15eb89b6 [ patch description reformatted by tiwai ] Fixes: cc3d0b5 ("ALSA: hda/realtek: Update ALC256 depop procedure") Link: https://bugzilla.kernel.org/show_bug.cgi?id=220109 Signed-off-by: Kailang Yang <kailang@realtek.com> Link: https://lore.kernel.org/5317ca723c82447a938414fcca85cbf5@realtek.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 018f659 commit f4b3cef

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

sound/hda/codecs/realtek/alc269.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,15 @@ static void alc256_shutup(struct hda_codec *codec)
510510
hp_pin = 0x21;
511511

512512
alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x1); /* Low power */
513+
514+
/* 3k pull low control for Headset jack. */
515+
/* NOTE: call this before clearing the pin, otherwise codec stalls */
516+
/* If disable 3k pulldown control for alc257, the Mic detection will not work correctly
517+
* when booting with headset plugged. So skip setting it for the codec alc257
518+
*/
519+
if (spec->en_3kpull_low)
520+
alc_update_coef_idx(codec, 0x46, 0, 3 << 12);
521+
513522
hp_pin_sense = snd_hda_jack_detect(codec, hp_pin);
514523

515524
if (hp_pin_sense) {
@@ -520,14 +529,6 @@ static void alc256_shutup(struct hda_codec *codec)
520529

521530
msleep(75);
522531

523-
/* 3k pull low control for Headset jack. */
524-
/* NOTE: call this before clearing the pin, otherwise codec stalls */
525-
/* If disable 3k pulldown control for alc257, the Mic detection will not work correctly
526-
* when booting with headset plugged. So skip setting it for the codec alc257
527-
*/
528-
if (spec->en_3kpull_low)
529-
alc_update_coef_idx(codec, 0x46, 0, 3 << 12);
530-
531532
if (!spec->no_shutup_pins)
532533
snd_hda_codec_write(codec, hp_pin, 0,
533534
AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);

0 commit comments

Comments
 (0)