linux/sound/pci/hda
Takashi Iwai 302d5a80d2 ALSA: hda - Fix mutex deadlock in HDMI codec driver
The commit ade49db337 ("ALSA: hda/hdmi - Allow audio component for
AMD/ATI and Nvidia HDMI") introduced the spec->pcm_lock mutex lock to
the whole generic_hdmi_init() function for avoiding the race with the
audio component registration.  However, this caused a dead lock when
the unsolicited event is handled without the audio component, as the
codec gets runtime-resumed in hdmi_present_sense() which is already
inside the spec->pcm_lock in its caller.

For avoiding this deadlock, add a new mutex only for the audio
component binding that is used in both generic_hdmi_init() and the
audio notifier registration where the jack callbacks are handled /
re-registered.

Fixes: ade49db337 ("ALSA: hda/hdmi - Allow audio component for AMD/ATI and Nvidia HDMI")
Reported-and-tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://lore.kernel.org/r/s5himo7i89i.wl-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-10-30 15:32:37 +01:00
..
Kconfig Merge branch 'topic/hda-bus-ops-cleanup' of https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound into asoc-5.4 2019-08-08 23:20:45 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ca0132_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_auto_parser.c ASoC: Updates for v5.4 2019-09-10 13:03:08 +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 - Use standard device registration for beep 2019-01-29 18:28:09 +01:00
hda_beep.h ALSA: hda - Use standard device registration for beep 2019-01-29 18:28:09 +01:00
hda_bind.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
hda_codec.c Merge branch 'asoc-5.4' into asoc-next 2019-09-09 14:55:20 +01:00
hda_controller.c Merge branch 'asoc-5.4' into asoc-next 2019-09-09 14:55:20 +01:00
hda_controller.h Merge branch 'asoc-5.4' into asoc-next 2019-09-09 14:55:20 +01: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_eld.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_generic.c ALSA: hda/realtek - Fix overridden device-specific initialization 2019-08-30 12:03:38 +02:00
hda_generic.h ALSA: hda/realtek - Fix overridden device-specific initialization 2019-08-30 12:03:38 +02:00
hda_hwdep.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_intel.c Revert "ALSA: hda: Flush interrupts on disabling" 2019-10-28 11:47:59 +01:00
hda_intel.h ALSA: hda - Allow runtime PM for controller if component notifier is used 2019-08-27 16:37:50 +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_jack.c ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
hda_jack.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 46 2019-05-24 17:27:12 +02:00
hda_local.h ALSA: hda - Expand pin_match function to match upcoming new tbls 2019-08-16 11:59:30 +02:00
hda_proc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_sysfs.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
hda_tegra.c ALSA: hda: Direct MMIO accesses 2019-08-08 16:36:18 +02:00
hp_x360_helper.c ALSA: hda/realtek - Fixup for HP x360 laptops with B&O speakers 2018-05-29 22:33:37 +02:00
patch_analog.c ALSA: hda - Add laptop imic fixup for ASUS M9V laptop 2019-09-20 15:53:24 +02:00
patch_ca0110.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_ca0132.c ALSA: hda/ca0132 - Add new SBZ quirk 2019-08-20 09:03:55 +02:00
patch_cirrus.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_cmedia.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_conexant.c ALSA: hda - Fixes inverted Conexant GPIO mic mute led 2019-08-19 19:41:26 +02:00
patch_hdmi.c ALSA: hda - Fix mutex deadlock in HDMI codec driver 2019-10-30 15:32:37 +01:00
patch_realtek.c ALSA: hda/realtek - Fix 2 front mics of codec 0x623 2019-10-24 14:23:04 +02:00
patch_si3054.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_sigmatel.c ALSA: hda/sigmatel - remove unused variable 'stac9200_core_init' 2019-08-13 17:44:48 +02:00
patch_via.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
thinkpad_helper.c ALSA: hda - Support led audio trigger 2018-11-28 23:25:22 +01:00