On Fri, 31 Dec 2021 14:44:32 +0100, Christian A. Ehrhardt wrote: > > > Hi, > > while debugging something different, I found the following > jack detection related bug in the cs8904 driver on my DELL > Inspirion 3501: > - Plug in a headset, play some sound to make sure that > the headset is detected. > - Stop the sound, wait for the codec to go into suspend (30s > should be plenty enough time) > - Unplug the headset while the codec is in suspend. > - Try to play sound on the internal speakers. Notice that > the the driver still thinks the headset is connected. As a result > there is no sound on the internal speakers. > > AFAICS the bug was introduced by the following commit: > | commit 424e531b47f83da87490464c5bf633dfb624fe6a > | Author: Stefan Binding <sbinding@xxxxxxxxxxxxxxxxxxxxx> > | Date: Fri Aug 27 12:02:51 2021 +0100 > | > | ALSA: hda/cs8409: Ensure Type Detection is only run on startup when > | necessary > > The bug is with the hp_jack_in and mic_jack_in flags that are used > to determine if jack detection should be run etc. These flags > are cleared in the suspend path. This prevents a status change from > being detected after resume as hp_jack_in is cleared by suspend and > there is no jack due to the unplug of the headset. > > This status change was never reported to the HDA core, though. > On suspend this is not done, only hd_jack_in is cleared and on > resume the driver thinks that there is no change the needs reporting. > > Proposed fix below, please consider inclusion. > > regards Christian > > >From 1dcf34c1d1c6c4852a86ec3ae189afa5d90ea09c Mon Sep 17 00:00:00 2001 > From: "Christian A. Ehrhardt" <lk@xxxxxxx> > Date: Fri, 31 Dec 2021 12:13:48 +0100 > Subject: [PATCH 2/2] ALSA: hda/cs8409: Fix Jack detection after resume > > The suspend code unconditionally sets ->hp_jack_in and ->mic_jack_in > to zero but without reporting this status change to the HDA core. > To compensate for this, always assume a status change on the > first unsol event after boot or resume. > > Fixes: 424e531b47f8 ("ALSA: hda/cs8409: Ensure Type Detection is only run on startup when necessary") > Signed-off-by: Christian A. Ehrhardt <lk@xxxxxxx> Thanks, applied now. Takashi