From: Takashi Iwai <tiwai@suse.de>
To: "Joakim Zhang" <joakim.zhang@cixtech.com>
Cc: Takashi Iwai <tiwai@suse.de>, "perex@perex.cz" <perex@perex.cz>,
"tiwai@suse.com" <tiwai@suse.com>,
"linux-sound@vger.kernel.org" <linux-sound@vger.kernel.org>,
"chris.chiu@canonical.com" <chris.chiu@canonical.com>,
"kailang@realtek.com" <kailang@realtek.com>,
"geans_chen@realsil.com.cn" <geans_chen@realsil.com.cn>,
cix-kernel-upstream <cix-kernel-upstream@cixtech.com>
Subject: Re: [PATCH V1 2/4] ALSA: hda: add no_pin_sense_update flag for jack detection
Date: Mon, 23 Jun 2025 15:11:12 +0200 [thread overview]
Message-ID: <87jz52mwlr.wl-tiwai@suse.de> (raw)
In-Reply-To: <SEYPR06MB627832E929730EFEA1FD7AED8279A@SEYPR06MB6278.apcprd06.prod.outlook.com>
On Mon, 23 Jun 2025 12:39:48 +0200,
Joakim Zhang wrote:
>
> Hello Takashi,
>
> > -----Original Message-----
> > From: Joakim Zhang <joakim.zhang@cixtech.com>
> > Sent: Saturday, June 21, 2025 2:15 PM
> > To: Takashi Iwai <tiwai@suse.de>
> > Cc: perex@perex.cz; tiwai@suse.com; linux-sound@vger.kernel.org;
> > chris.chiu@canonical.com; kailang@realtek.com; geans_chen@realsil.com.cn;
> > cix-kernel-upstream <cix-kernel-upstream@cixtech.com>
> > Subject: 回复: [PATCH V1 2/4] ALSA: hda: add no_pin_sense_update flag for
> > jack detection
> >
> >
> > Hello Takashi,
> > ________________________________________
> > 发件人: Takashi Iwai <tiwai@suse.de>
> > 已发送: 2025 年 6 月 20 日 星期五 20:11
> > 收件人: Joakim Zhang <joakim.zhang@cixtech.com>
> > 抄送: perex@perex.cz <perex@perex.cz>; tiwai@suse.com <tiwai@suse.com>;
> > linux-sound@vger.kernel.org <linux-sound@vger.kernel.org>;
> > chris.chiu@canonical.com <chris.chiu@canonical.com>; kailang@realtek.com
> > <kailang@realtek.com>; geans_chen@realsil.com.cn
> > <geans_chen@realsil.com.cn>; cix-kernel-upstream <cix-kernel-
> > upstream@cixtech.com>
> > 主题: Re: [PATCH V1 2/4] ALSA: hda: add no_pin_sense_update flag for jack
> > detection
>
> [......]
>
> > [Joakim] Let me take realtek alc256 as an example,
> > hda_call_codec_resume()
> > 1)codec->patch_ops.resume(codec) // alc269_resume()
> > codec->patch_ops.init(codec) // alc_init()
> > spec->init_hook(codec) // alc256_init()
> > snd_hda_jack_detect(codec, hp_pin)
> > ....
> > snd_hda_jack_pin_sense()
> > jack_detect_update()
> > jack->pin_sense = read_pin_sense(codec, jack->nid, jack-
> > >dev_id); // update jack->pin_sense here, but not report jack status
> > 2)hda_jackpoll_work(&codec->jackpoll_work.work)
> > snd_hda_jack_poll_all(codec)
> > old_sense = get_jack_plug_state(jack->pin_sense);
> > jack_detect_update(codec, jack);
> > if (changes)
> > snd_hda_jack_report_sync(codec);
> >
> > If the headset is not plugin before system suspending, so the jack->pin_sense
> > = 0x0, plugin the headset when system in suspended state, system resume
> > back, the jack->pin_sense update to 0x80000000 from codec
> > patch_ops.init(), then jackpoll work get the old_sense = 0x80000000 (but
> > actually it is not old sense before system suspending), and the current jack-
> > >pin_sense also 0x80000000 when calling jack_detect_update(), as a result
> > there is no changes, finally not report the headset plugin event.
> >
> > Is it logical to report jack status immediately when updating the jack pin
> > sense? If not, the old pin sense can still be trusted?
> >
> > Please correct me if anything misunderstanding, thanks, as a hda newer may
> > not understood very deeply.
>
> I confirm this issue exist in the original logic, but your PoC also fix this issue, I quite agree with your above point of view:
> "I believe we should simply call snd_hda_jack_report_sync() unconditionally, then schedule the jackpoll work, as done in my PoC patch."
>
> With your PoC patch, three issues(patch 1/2/3) have been solved simultaneously, please feel free to add my tested tag:
> Tested-by: Joakim Zhang <joakim.zhang@cixtech.com>
Good to hear! I'm going to submit the proper patch set.
thanks,
Takashi
next prev parent reply other threads:[~2025-06-23 13:11 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-19 2:08 [PATCH V1 0/4] ALSA: hda: jack detect fixes joakim.zhang
2025-06-19 2:08 ` [PATCH V1 1/4] ALSA: hda: fix controller cannot suspend when codec using jackpoll joakim.zhang
2025-06-20 12:00 ` Takashi Iwai
2025-06-21 6:12 ` 回复: " Joakim Zhang
2025-06-19 2:08 ` [PATCH V1 2/4] ALSA: hda: add no_pin_sense_update flag for jack detection joakim.zhang
2025-06-20 12:11 ` Takashi Iwai
2025-06-21 6:14 ` 回复: " Joakim Zhang
2025-06-23 10:39 ` Joakim Zhang
2025-06-23 13:11 ` Takashi Iwai [this message]
2025-06-19 2:08 ` [PATCH V1 3/4] ALSA: hda: disable jackpoll_in_suspend when system shutdown joakim.zhang
2025-06-20 12:12 ` Takashi Iwai
2025-06-19 2:08 ` [PATCH V1 4/4] ALSA: hda/realtek: fix mic jack detect failed on alc256 joakim.zhang
2025-06-20 12:13 ` Takashi Iwai
2025-06-24 2:31 ` Kailang
2025-06-24 3:32 ` Joakim Zhang
2025-06-24 6:17 ` Kailang
2025-06-25 1:32 ` Joakim Zhang
2025-06-25 3:05 ` Kailang
2025-06-26 3:44 ` Joakim Zhang
2025-06-26 5:51 ` Kailang
2025-07-01 3:28 ` Joakim Zhang
2025-07-01 5:51 ` Takashi Iwai
2025-07-01 6:35 ` Joakim Zhang
2025-07-01 6:42 ` Takashi Iwai
2025-07-01 6:48 ` Joakim Zhang
2025-07-01 6:50 ` Takashi Iwai
2025-07-01 8:40 ` Joakim Zhang
2025-07-01 9:14 ` Takashi Iwai
2025-07-01 10:27 ` Joakim Zhang
2025-07-01 11:42 ` Takashi Iwai
2025-07-02 1:59 ` Joakim Zhang
2025-07-02 14:27 ` Takashi Iwai
2025-07-03 1:39 ` Joakim Zhang
2025-06-20 11:51 ` [PATCH V1 0/4] ALSA: hda: jack detect fixes Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87jz52mwlr.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=chris.chiu@canonical.com \
--cc=cix-kernel-upstream@cixtech.com \
--cc=geans_chen@realsil.com.cn \
--cc=joakim.zhang@cixtech.com \
--cc=kailang@realtek.com \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox