linux/sound/pci
Nikhil Mahale 5204a05d70 ALSA: hda - Add DP-MST jack support
This patch adds DP-MST jack support which will be used on NVIDIA
platforms. Today, DP-MST audio is supported only if the codec has
acomp support. This patch makes it possible to add DP-MST support
for non-acomp codecs.

For the codecs supporting DP-MST audio, each pin can contain several
device entries. Each device entry is a virtual pin, described by
pin_nid and dev_id in struct hdmi_spec_per_pin. For monitor hotplug
event handling, non-acomp codecs enable and register jack-detection
for every hdmi_spec_per_pin.

This patch updates every relevant function in hda_jack.h and its
implementation in hda_jack.c, to consider dev_id along with pin_nid.

Changes to the HD Audio specification to support DP-MST audio are
described in the Intel Document Change Notification (DCN) number
HDA040-A.

From HDA040-A, "For the case of multi stream capable Digital Display
Pin Widget, [the Get Pin Sense verb] can be used to read a specific
Device Entry state as reported in Get Device List Entry verb." This
patch updates the read_pin_sense() function to take the dev_id as an
argument and pass it as a parameter to the Get Pin Sense verb.

Bits 15 through 20 from the Unsolicited Response for intrinsic
events contain the index of the Device Entry that generated the
event. This patch updates the Unsolicited Response event handlers to
extract the device entry index from the response and pass it to
snd_hda_jack_tbl_get_from_tag().

This patch updates snd_hda_jack_tbl_new() to take a dev_id argument
and store it in the jack structure, and to make sure not to generate
a different tag when called more than once for the same nid.

Signed-off-by: Nikhil Mahale <nmahale@nvidia.com>
Link: https://lore.kernel.org/r/20191119084710.29267-3-nmahale@nvidia.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-11-19 11:51:07 +01:00
..
ac97 ALSA: ac97: remove unused variable 'snd_ac97_controls_master_mono' 2019-08-09 11:28:43 +02:00
ali5451 ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
asihpi ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
au88x0 ALSA: au88x0: Fix incorrect device pointer for preallocation 2019-11-12 15:33:52 +01:00
aw2 ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
ca0106 ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
cs46xx ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
cs5535audio ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
ctxfi ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
echoaudio ALSA: echoaudio: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
emu10k1 ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
hda ALSA: hda - Add DP-MST jack support 2019-11-19 11:51:07 +01:00
ice1712 ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
korg1212 ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
lola ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
lx6464es ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
mixart ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
nm256 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
oxygen ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
pcxhr ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
riptide ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
rme9652 ALSA: rme: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
trident ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
vx222 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ymfpci ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
ad1889.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
ad1889.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ak4531_codec.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
als300.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
als4000.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
atiixp_modem.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
atiixp.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
azt3328.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
azt3328.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bt87x.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
cmipci.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
cs4281.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
cs5530.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 2019-05-24 17:39:02 +02:00
ens1370.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
ens1371.c
es1938.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
es1968.c ALSA: es1968: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
fm801.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
intel8x0.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
intel8x0m.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
Kconfig sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
maestro3.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +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
rme32.c ALSA: rme32: Remove superfluous snd_dma_continuous_data() 2019-11-06 15:47:41 +01:00
rme96.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
sis7019.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
sis7019.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 274 2019-06-05 17:30:30 +02:00
sonicvibes.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
via82xx_modem.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00
via82xx.c ALSA: pci: Avoid non-standard macro usage 2019-11-06 15:47:43 +01:00