android_kernel_motorola_sm6225/sound/pci
Kai Vehmanen 7795d8f10e ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later
[ Upstream commit 56275036d8185f92eceac7479d48b858ee3dab84 ]

When HDMI PCM devices are opened in a specific order, with at least one
HDMI/DP receiver connected, ALSA PCM open fails to -EBUSY on the
connected monitor, on recent Intel platforms (ICL/JSL and newer). While
this is not a typical sequence, at least Pulseaudio does this every time
when it is started, to discover the available PCMs.

The rootcause is an invalid assumption in hdmi_add_pin(), where the
total number of converters is assumed to be known at the time the
function is called. On older Intel platforms this held true, but after
ICL/JSL, the order how pins and converters are in the subnode list as
returned by snd_hda_get_sub_nodes(), was changed. As a result,
information for some converters was not stored to per_pin->mux_nids.
And this means some pins cannot be connected to all converters, and
application instead gets -EBUSY instead at open.

The assumption that converters are always before pins in the subnode
list, is not really a valid one. Fix the problem in hdmi_parse_codec()
by introducing separate loops for discovering converters and pins.

BugLink: https://github.com/thesofproject/linux/issues/1978
BugLink: https://github.com/thesofproject/linux/issues/2216
BugLink: https://github.com/thesofproject/linux/issues/2217
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200703153818.2808592-1-kai.vehmanen@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-18 11:30:52 +01:00
..
ac97 ALSA: ac97: fix possible memory leak in snd_ac97_dev_register() 2022-11-03 23:52:30 +09:00
ali5451
asihpi ALSA: asihpi: fix missing pci_disable_device() 2023-01-18 11:30:14 +01:00
au88x0 ALSA: au88x0: use explicitly signed char 2022-11-03 23:52:27 +09:00
aw2
ca0106 ALSA: ca0106: fix error code handling 2020-09-09 19:04:30 +02:00
cs46xx ALSA: pci: delete repeated words in comments 2020-09-03 11:24:17 +02:00
cs5535audio
ctxfi ALSA: ctxfi: Fix out-of-range access 2021-12-01 09:27:39 +01:00
echoaudio ALSA: echoaudio: Fix potential Oops in snd_echo_resume() 2020-08-21 11:05:38 +02:00
emu10k1 ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc() 2022-09-15 12:17:05 +02:00
hda ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later 2023-01-18 11:30:52 +01:00
ice1712 ALSA: pci: delete repeated words in comments 2020-09-03 11:24:17 +02:00
korg1212
lola
lx6464es ALSA: lx6464es - add support for LX6464ESe pci express variant 2020-06-22 09:05:24 +02:00
mixart ALSA: mixart: Fix mutex deadlock 2020-11-24 13:27:24 +01:00
nm256
oxygen ALSA: pci: delete repeated words in comments 2020-09-03 11:24:17 +02:00
pcxhr
riptide
rme9652 ALSA: rme9652: don't disable if not enabled 2021-05-22 10:59:40 +02:00
trident
vx222
ymfpci
ad1889.c
ad1889.h
ak4531_codec.c
als300.c
als4000.c
atiixp.c
atiixp_modem.c
azt3328.c
azt3328.h
bt87x.c
cmipci.c ALSA: cmipci: Restore aux vol on suspend/resume 2022-03-28 08:41:43 +02:00
cs4281.c
cs5530.c
ens1370.c
ens1371.c
es1938.c
es1968.c
fm801.c
intel8x0.c
intel8x0m.c
Kconfig ALSA: ISA: not for M68K 2021-11-26 11:36:20 +01:00
maestro3.c
Makefile
rme32.c
rme96.c
sis7019.c
sis7019.h
sonicvibes.c
via82xx.c
via82xx_modem.c