linux/sound/pci
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
..
ac97 ALSA: ac97: More constifications 2020-01-05 16:14:34 +01:00
ali5451 ALSA: pci: Constify snd_kcontrol_new items 2020-01-03 09:24:28 +01:00
asihpi ALSA: asihpi: More constifications 2020-01-05 16:14:53 +01:00
au88x0 ALSA: au88x0: More constifications 2020-01-05 16:14:38 +01:00
aw2 sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
ca0106 ALSA: ca0106: More constifications 2020-01-05 16:14:52 +01:00
cs46xx sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
cs5535audio ALSA: pci: Constify snd_kcontrol_new items 2020-01-03 09:24:28 +01:00
ctxfi ALSA: ctxfi: More constifications 2020-01-05 16:14:52 +01:00
echoaudio sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
emu10k1 ALSA: emu10k1: Fix annotation and cast for the recent uapi header change 2020-02-02 10:08:24 +01:00
hda ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks 2020-02-10 08:23:07 +01:00
ice1712 ALSA: ice1712: More constifications 2020-01-05 16:14:41 +01:00
korg1212 ALSA: korg1212: More constifications 2020-01-05 16:14:50 +01:00
lola ALSA: pci: Constify snd_device_ops definitions 2020-01-03 09:23:56 +01:00
lx6464es ALSA: lx6464es: More constifications 2020-01-05 16:15:07 +01:00
mixart ALSA: mixart: More constifications 2020-01-05 16:14:48 +01:00
nm256 sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
oxygen ALSA: oxygen: Support PCM sync_stop 2019-12-11 07:25:50 +01:00
pcxhr ALSA: pcxhr: More constifications 2020-01-05 16:14:47 +01:00
riptide ALSA: riptide: More constifications 2020-01-05 16:14:40 +01:00
rme9652 sound fixes for 5.6-rc1 2020-02-06 14:15:01 +00:00
trident ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
vx222 ALSA: vx: More constifications 2020-01-05 16:14:30 +01:00
ymfpci sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
ad1889.c ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
ad1889.h
ak4531_codec.c ALSA: ak4531: More constification 2020-01-05 16:15:09 +01:00
als300.c ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
als4000.c ALSA: pci: Drop superfluous ioctl PCM ops 2019-12-11 07:25:31 +01:00
atiixp_modem.c ALSA: atiixp: More constifications 2020-01-05 16:14:54 +01:00
atiixp.c ALSA: atiixp: More constifications 2020-01-05 16:14:54 +01:00
azt3328.c ALSA: azt3328: More constification 2020-01-05 16:15:09 +01:00
azt3328.h
bt87x.c ALSA: bt87x: Constify snd_bt87x_boards 2020-01-03 09:24:42 +01:00
cmipci.c ALSA: cmipci: More constifications 2020-01-05 16:14:55 +01:00
cs4281.c ALSA: cs4281: More constification 2020-01-05 16:15:10 +01:00
cs5530.c ALSA: pci: Constify snd_device_ops definitions 2020-01-03 09:23:56 +01:00
ens1370.c ALSA: ens137x: More constification 2020-01-05 16:15:11 +01:00
ens1371.c
es1938.c ALSA: es1938: More constifications 2020-01-05 16:14:54 +01:00
es1968.c ALSA: es1968: More constifications 2020-01-05 16:14:55 +01:00
fm801.c ALSA: fm801: More constification 2020-01-05 16:15:12 +01:00
intel8x0.c ALSA: intel8x0: More constifications 2020-01-05 16:14:31 +01:00
intel8x0m.c ALSA: intel8x0: More constifications 2020-01-05 16:14:31 +01:00
Kconfig sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
maestro3.c ALSA: pci: Constify snd_pci_quirk tables 2020-01-03 09:24:45 +01:00
Makefile
rme32.c sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
rme96.c sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
sis7019.c sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
sis7019.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 274 2019-06-05 17:30:30 +02:00
sonicvibes.c ALSA: pci: Constify snd_kcontrol_new items 2020-01-03 09:24:28 +01:00
via82xx_modem.c ALSA: pci: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:13 +01:00
via82xx.c ALSA: via82xx: More constification 2020-01-05 16:15:12 +01:00