linux_dsm_epyc7002/sound/pci/hda
Kai Vehmanen 56275036d8 ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later
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>
2020-07-07 10:12:39 +02:00
..
ca0132_regs.h
hda_auto_parser.c ALSA: hda - let hs_mic be picked ahead of hp_mic 2020-06-25 15:00:45 +02:00
hda_auto_parser.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 46 2019-05-24 17:27:12 +02:00
hda_beep.c ALSA: hda: Fix potential access overflow in beep helper 2020-04-07 16:42:29 +02:00
hda_beep.h ALSA: hda - Use standard device registration for beep 2019-01-29 18:28:09 +01:00
hda_bind.c
hda_codec.c ALSA: hda: Always use jackpoll helper for jack update after resume 2020-04-23 12:24:14 +02:00
hda_controller_trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hda_controller.c ALSA: hda: remove redundant assignment to variable timeout 2020-02-10 08:29:46 +01:00
hda_controller.h Merge branch 'topic/usb-validation' into for-next 2019-08-22 15:42:03 +02:00
hda_eld.c ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs 2020-02-18 10:15:41 +01:00
hda_generic.c ALSA: hda: correct kernel-doc parameter descriptions 2020-01-14 07:47:44 +01:00
hda_generic.h
hda_hwdep.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_intel_trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hda_intel.c ALSA: hda: Intel: add missing PCI IDs for ICL-H, TGL-H and EKL 2020-06-18 10:00:22 +02:00
hda_intel.h ALSA: hda: Release resources at error in delayed probe 2020-04-13 18:02:36 +02:00
hda_jack.c
hda_jack.h
hda_local.h
hda_proc.c ALSA: hda: More constifications 2020-01-05 16:14:32 +01:00
hda_sysfs.c ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs 2020-02-18 10:15:41 +01:00
hda_tegra.c ALSA: hda/tegra: workaround playback failure on Tegra194 2020-05-04 11:51:32 +02:00
hp_x360_helper.c
Kconfig ALSA: Fix misspellings of "Analog Devices" 2020-04-17 11:38:03 +02:00
Makefile
patch_analog.c ALSA: hda/analog - Minor optimization for SPDIF mux connections 2020-01-16 17:29:17 +01:00
patch_ca0110.c
patch_ca0132.c Merge branch 'for-next' into for-linus 2020-03-30 09:46:51 +02:00
patch_cirrus.c
patch_cmedia.c
patch_conexant.c Merge branch 'for-linus' into for-next 2020-01-26 09:31:41 +01:00
patch_hdmi.c ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later 2020-07-07 10:12:39 +02:00
patch_realtek.c ALSA: hda/realtek: Add mute LED and micmute LED support for HP systems 2020-06-17 17:43:39 +02:00
patch_si3054.c
patch_sigmatel.c ALSA: hda - constify and cleanup static NodeID tables 2020-01-03 10:38:38 +01:00
patch_via.c
thinkpad_helper.c ALSA: hda - Support led audio trigger 2018-11-28 23:25:22 +01:00