linux/sound/hda/codecs/hdmi
Kai Vehmanen a3d6d3cedf ALSA: hda: codecs: hdmi: disable keep-alive before audio format change
When a keep-alive (KAE) silent stream is active on an Intel HDMI/DP
codec, opening a real PCM stream reprograms the converter format and the
audio infoframe in snd_hda_hdmi_generic_pcm_prepare(). Part of that
reprogramming - the converter channel count and the channel mapping in
snd_hda_hdmi_setup_audio_infoframe() - is not safe to do while a
keep-alive stream is active. This is most visible when switching to a
multichannel PCM configuration, where the active channel count actually
changes. In that case the newly opened PCM stream plays no sound.

Add an optional hdmi_ops .prepare hook, called at the start of the
PCM prepare sequence (before the format and infoframe are touched), and
implement it for HSW+ to release keep-alive. Keep-alive is then
re-enabled as before once the new stream has been set up, in the
setup_stream op.

Fixes: 15175a4f2b ("ALSA: hda/hdmi: add keep-alive support for ADL-P and DG2")
Reported-by: Alexander Kaplan <alexander.kaplan@sms-medipool.de>
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/8412
Tested-by: Alexander Kaplan <alexander.kaplan@sms-medipool.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://patch.msgid.link/20260715180610.1371243-1-kai.vehmanen@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-07-16 08:32:08 +02:00
..
atihdmi.c ALSA: hda/hdmi: Rewrite to new probe method 2025-07-11 09:55:38 +02:00
eld.c ALSA: hda/hdmi: Split vendor codec drivers 2025-07-11 09:55:37 +02:00
hdmi_local.h ALSA: hda: codecs: hdmi: disable keep-alive before audio format change 2026-07-16 08:32:08 +02:00
hdmi.c ALSA: hda: codecs: hdmi: disable keep-alive before audio format change 2026-07-16 08:32:08 +02:00
intelhdmi.c ALSA: hda: codecs: hdmi: disable keep-alive before audio format change 2026-07-16 08:32:08 +02:00
Kconfig ALSA: hda/hdmi: Restrict prompt only for CONFIG_EXPERT 2025-08-07 08:20:59 +02:00
Makefile ALSA: hda/hdmi: Enable drivers as default 2025-07-30 15:39:42 +02:00
nvhdmi-mcp.c ALSA: hda/hdmi: Fix breakage at probing nvhdmi-mcp driver 2025-11-06 11:49:35 +01:00
nvhdmi.c ALSA: hda/hdmi: Restore missing HDMI codec entries 2025-08-26 10:34:22 +02:00
simplehdmi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
tegrahdmi.c ALSA: hda/hdmi: Add Tegra238 HDA codec device ID 2026-03-02 10:59:47 +01:00