From: "Péter Ujfalusi" <peter.ujfalusi@linux.intel.com>
To: Alexander Kaplan <alexander.kaplan@sms-medipool.de>,
Takashi Iwai <tiwai@suse.com>,
linux-sound@vger.kernel.org
Cc: Jaroslav Kysela <perex@perex.cz>,
Kai Vehmanen <kai.vehmanen@linux.intel.com>,
Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>,
stable@vger.kernel.org, "Shankar, Uma" <uma.shankar@intel.com>
Subject: Re: [PATCH] ALSA: hda/hdmi: disable KAE for Intel Panther Lake
Date: Thu, 11 Jun 2026 12:08:57 +0300 [thread overview]
Message-ID: <5e05e954-338c-4a87-8a60-1fd2bd6bb8ce@linux.intel.com> (raw)
In-Reply-To: <20260610174834.6301-1-alexander.kaplan@sms-medipool.de>
Hi,
On 10/06/2026 20:48, Alexander Kaplan wrote:
> On Panther Lake the keep-alive engine poisons the display side of the
> audio path for multichannel PCM.
> Once KAE has been active in the running display power cycle, the first
> 6 or 8 channel stream on that pin plays silent and wedges the pin.
> All subsequent streams stay silent regardless of their format.
> Only a display power domain cycle recovers the pin, in practice a
> reboot or one suspend cycle.
>
> The wedge sits behind the audio converter.
> Sample counters in the display audio register block keep running during
> the silent playback while the output stays dead.
> The wedge survives clearing the KAE bit ahead of the stream id
> programming, fully quiescing the converter (KAE bit, stream id and
> format cleared before the multichannel setup), a complete codec and
> controller reset through a driver rebind with the keep-alive kept off,
> and powering down the audio well for ten minutes.
> The sequence is harmless when the keep-alive was never enabled in the
> running display power cycle, which isolates the KAE hardware as the
> trigger.
>
> Easy reproducer on a sink whose LPCM capability is limited to
> 2 channels:
> speaker-test -c2 plays, one speaker-test -c6 run plays silent and every
> following speaker-test -c2 stays silent until reboot.
> With enable_silent_stream=0 the same sequence plays normally.
Normally I have KAE disabled for power saving reasons on my laptops, but
did a quick test on my PTL:
# cat /proc/asound/card0/codec#2 | grep KAE
Digital: Enabled KAE
speaker-test -c2 / -c6 works as many times as I run them in all permutation.
>
> This is the failure class already known from commit 6ab6f98fcdc9
> ("ALSA: hda/hdmi: disable KAE for Intel DG2").
> Handle Panther Lake like DG2 and fall back to the older i915 silent
> stream method, which uses the regular stream path instead of the
> keep-alive engine.
> Like on DG2 this keeps the codec powered while the silent stream runs.
>
> Cc: stable@vger.kernel.org
> Fixes: e9481d9b83f8 ("ALSA: hda: add HDMI codec ID for Intel PTL")
> Signed-off-by: Alexander Kaplan <alexander.kaplan@sms-medipool.de>
> ---
> Found and verified on an ASUS NUC 16 Pro (Panther Lake H, codec
> 0x80862822) driving an LG TV through a Synaptics VMM7100 DP-to-HDMI
> protocol converter, kernel 7.1-rc7.
> The poisoning is independent of the sink and of the video mode.
My setup is: laptop HDMI -> SYNIC HDMI audio extractor -> HDMI KVM ->
monitor w/o speakers.
I use the extractor to grab the audio and it is clean every time I play
audio to HDMI.
Can this be somehow related to the DP-to-HDMI converter? Have you tested
that with other machine?
Or a combination of xe2+DP-to-HDMI?
Ccing Uma for display side
> This may also fix the silent Dolby TrueHD passthrough on Battlemage
> reported in
> https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7515.
> Battlemage uses the same keep-alive code path and TrueHD passthrough
> is the same first-multichannel-stream pattern, but I could not test
> that hardware.
>
> Workaround for affected systems without this patch:
> snd_hda_codec_intelhdmi.enable_silent_stream=0.
>
> sound/hda/codecs/hdmi/intelhdmi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/hda/codecs/hdmi/intelhdmi.c b/sound/hda/codecs/hdmi/intelhdmi.c
> index 6a7882544a..52997caae9 100644
> --- a/sound/hda/codecs/hdmi/intelhdmi.c
> +++ b/sound/hda/codecs/hdmi/intelhdmi.c
> @@ -791,7 +791,7 @@ static const struct hda_device_id snd_hda_id_intelhdmi[] = {
> HDA_CODEC_ID_MODEL(0x8086281e, "Battlemage HDMI", MODEL_ADLP),
> HDA_CODEC_ID_MODEL(0x8086281f, "Raptor Lake P HDMI", MODEL_ADLP),
> HDA_CODEC_ID_MODEL(0x80862820, "Lunar Lake HDMI", MODEL_ADLP),
> - HDA_CODEC_ID_MODEL(0x80862822, "Panther Lake HDMI", MODEL_ADLP),
> + HDA_CODEC_ID_MODEL(0x80862822, "Panther Lake HDMI", MODEL_TGL),
> HDA_CODEC_ID_MODEL(0x80862823, "Wildcat Lake HDMI", MODEL_ADLP),
> HDA_CODEC_ID_MODEL(0x80862824, "Nova Lake HDMI", MODEL_ADLP),
> HDA_CODEC_ID_MODEL(0x80862882, "Valleyview2 HDMI", MODEL_BYT),
--
Péter
next prev parent reply other threads:[~2026-06-11 9:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-10 17:48 [PATCH] ALSA: hda/hdmi: disable KAE for Intel Panther Lake Alexander Kaplan
2026-06-11 9:08 ` Péter Ujfalusi [this message]
2026-06-11 9:33 ` Péter Ujfalusi
2026-06-11 14:44 ` Alexander Kaplan
2026-06-12 12:45 ` Péter Ujfalusi
2026-06-12 18:13 ` Alexander Kaplan
2026-06-16 19:13 ` Kai Vehmanen
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=5e05e954-338c-4a87-8a60-1fd2bd6bb8ce@linux.intel.com \
--to=peter.ujfalusi@linux.intel.com \
--cc=alexander.kaplan@sms-medipool.de \
--cc=kai.vehmanen@linux.intel.com \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=pierre-louis.bossart@linux.dev \
--cc=stable@vger.kernel.org \
--cc=tiwai@suse.com \
--cc=uma.shankar@intel.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