linux/sound/pci/hda
Takashi Iwai db8454023b ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks
The current HDMI codec driver code manages the jack detection in two
different ways: for Intel codecs with audio component, the driver
creates snd_jack objects by itself while the standard hda_jack stuff
is used for the rest.  This was basically because the audio component
doesn't need the pin sense reading and the unsol event handling, hence
it just needs to report the corresponding jacks directly.

It was a bit messy but not too messy until the driver got DP-MST
support for Nvidia that re-uses the part of dyn_pcm_assign feature
while keeping the pin sense and the unsol event handling.  Now, for
DP-MST, we use hda_jack for pin sensing and unsol events but use the
own snd_jack objects.  Meanwhile for non-DP-MST, hda_jack is used for
pin sense and unsol events, and the jacks are bound on hda_jack.

Moreover, there is a polling mode support where the unsol event isn't
used.  For those, we also have special handling.

For simplifying those messes, this patch unifies the snd_jack handling
over all generic HDMI codes.  The driver creates snd_jack objects just
like Intel codecs did in the past but now for all devices.  For the
system without audio component binding, we still need the pin sense
and the unsol event handling, and those are still done with the
hda_jack table as before.  But hda_jack is no longer used for the
actual snd_jack handling.

Since the hda_jack is no longer used for jack reporting, we removed
snd_hda_jack_report_sync() calls, which also allowed to simplify the
return type of hda_present_sense() and co.  pin_idx_to_pcm_jack() was
simplified as well because it behaves same for all cases now.

Note that the hda_jack is still used for the simple HDMI codecs; they
are really simple enough, so no big reason to change intrusively.

Reviewed-by: Nikhil Mahale <nmahale@nvidia.com>
Link: https://lore.kernel.org/r/20200206162804.4734-3-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2020-02-10 08:23:07 +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: Constify snd_device_ops definitions 2020-01-03 09:23:55 +01:00
hda_beep.h ALSA: hda - Use standard device registration for beep 2019-01-29 18:28:09 +01:00
hda_bind.c ALSA: hda - Fix pending unsol events at shutdown 2019-10-28 12:44:28 +01:00
hda_codec.c ALSA: hda: correct kernel-doc parameter descriptions 2020-01-14 07:47:44 +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_controller.c ALSA: hda: Clear RIRB status before reading WP 2020-02-06 11:46:18 +01:00
hda_controller.h Merge branch 'asoc-5.4' into asoc-next 2019-09-09 14:55:20 +01:00
hda_eld.c ALSA: hda: More constifications 2020-01-05 16:14:32 +01:00
hda_generic.c ALSA: hda: correct kernel-doc parameter descriptions 2020-01-14 07:47:44 +01: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_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: Add JasperLake PCI ID and codec vid 2020-02-01 08:44:54 +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_jack.c ALSA: hda: correct kernel-doc parameter descriptions 2020-01-14 07:47:44 +01:00
hda_jack.h ALSA: hda - Add DP-MST jack support 2019-11-19 11:51:07 +01:00
hda_local.h ALSA: hda: Manage concurrent reg access more properly 2020-01-13 13:40:41 +01:00
hda_proc.c ALSA: hda: More constifications 2020-01-05 16:14:32 +01:00
hda_sysfs.c ALSA: hda: More constifications 2020-01-05 16:14:32 +01:00
hda_tegra.c Merge branch 'for-linus' into for-next 2020-01-20 11:44:51 +01: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
Kconfig ALSA: hda: add Intel DSP configuration / probe code 2019-10-23 06:31:37 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
patch_analog.c ALSA: hda/analog - Minor optimization for SPDIF mux connections 2020-01-16 17:29:17 +01:00
patch_ca0110.c ALSA: hda: Unify get_response handling 2019-12-13 14:36:52 +01:00
patch_ca0132.c ALSA: hda: correct kernel-doc parameter descriptions 2020-01-14 07:47:44 +01: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 Merge branch 'for-linus' into for-next 2020-01-26 09:31:41 +01:00
patch_hdmi.c ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks 2020-02-10 08:23:07 +01:00
patch_realtek.c ALSA: hda/realtek - Fixed one of HP ALC671 platform Headset Mic supported 2020-02-06 07:56:37 +01: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 - constify and cleanup static NodeID tables 2020-01-03 10:38:38 +01:00
patch_via.c ALSA: hda: Manage concurrent reg access more properly 2020-01-13 13:40:41 +01:00
thinkpad_helper.c ALSA: hda - Support led audio trigger 2018-11-28 23:25:22 +01:00