diff mbox series

[v3,4/4] ALSA: hda - Add DP-MST support for NVIDIA codecs

Message ID 20191119084710.29267-5-nmahale@nvidia.com (mailing list archive)
State New, archived
Headers show
Series ALSA: hda - Add DP-MST support for NVIDIA codecs | expand

Commit Message

Nikhil Mahale Nov. 19, 2019, 8:47 a.m. UTC
This patch adds DP-MST support for GK104+ NVIDIA codecs.

GK104+ NVIDIA codecs support DP-MST audio. These codecs have 4
output converters and 4 pin widgets, with 4 device entries per pin
widget for a total of 16 device entries.

This patch moves the existing patch_nvhdmi() definition to
patch_nvhdmi_legacy(), used by pre-GK104 NVIDIA codecs. Redefine
patch_nvhdmi() to enable DP-MST support by setting codec->dp_mst and
spec->dyn_pcm_assign.

Introduce fresh logic for dynamic pcm assignment, making
sure that new pcm assignments are compatible with the legacy static
per_pin-pmc assignment that existed in the days before DP-MST.

Signed-off-by: Nikhil Mahale <nmahale@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
---
 sound/pci/hda/patch_hdmi.c | 95 +++++++++++++++++++++++++++++++++++-----------
 1 file changed, 73 insertions(+), 22 deletions(-)

Comments

Martin Regner Feb. 1, 2020, 3:28 p.m. UTC | #1
Hi there,

since i updated to kernel 5.5 i have no sound over hdmi anymore (GeForce 
RTX 2070).

With the previous kernel 5.4.14 everything is fine.

Although i got sound with speaker-test -D hdmi:CARD=NVidia,DEV=2 -c 2 -r 
44100, pavucontrol shows all hdmi sound devices as unplugged.

I bisected it down to this commit 
(5398e94fb753d022301825ebfa5f7cf8a660d8eb) and changed the line

HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi)

to

HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi_legacy)

Now it's working again. I'm not sure if this is a problem with 
pulseaudio or if the RTX 2070 does not support the mentioned codec.

Thanks in advance

Martin
Takashi Iwai Feb. 2, 2020, 8:37 a.m. UTC | #2
On Sat, 01 Feb 2020 16:28:08 +0100,
Martin Regner wrote:
> 
> Hi there,
> 
> since i updated to kernel 5.5 i have no sound over hdmi anymore (GeForce RTX
> 2070).
> 
> With the previous kernel 5.4.14 everything is fine.
> 
> Although i got sound with speaker-test -D hdmi:CARD=NVidia,DEV=2 -c 2 -r
> 44100, pavucontrol shows all hdmi sound devices as unplugged.
> 
> I bisected it down to this commit (5398e94fb753d022301825ebfa5f7cf8a660d8eb)
> and changed the line
> 
> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi)
> 
> to
> 
> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi_legacy)
> 
> Now it's working again. I'm not sure if this is a problem with pulseaudio or
> if the RTX 2070 does not support the mentioned codec.

The runtime PM turns off the link, so the hotplug notification won't
be delivered as default.  Please try reading the corresponding proc
file, /proc/asound/card*/codec* file.  This may power up the codec and 
trigger the hotplug detection if that's the cause.


Takashi
Martin Regner Feb. 2, 2020, 2:18 p.m. UTC | #3
Hi Takashi,

thanks for your reply. I tried that with

cat /proc/asound/card0/codec#0

but that doesn't help. I'm digging me through the kernel config right 
now. May have to change something else.

I simply could create a patch on my gentoo system switching from 
patch_nvhdmi to patch_nvhdmi_legacy for every new kernel, but that won't 
work forever.

If you have other thinks i could try i'd appreciate to hear them.

kind regards
Martin

On 02.02.20 09:37, Takashi Iwai wrote:
> On Sat, 01 Feb 2020 16:28:08 +0100,
> Martin Regner wrote:
>> Hi there,
>>
>> since i updated to kernel 5.5 i have no sound over hdmi anymore (GeForce RTX
>> 2070).
>>
>> With the previous kernel 5.4.14 everything is fine.
>>
>> Although i got sound with speaker-test -D hdmi:CARD=NVidia,DEV=2 -c 2 -r
>> 44100, pavucontrol shows all hdmi sound devices as unplugged.
>>
>> I bisected it down to this commit (5398e94fb753d022301825ebfa5f7cf8a660d8eb)
>> and changed the line
>>
>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi)
>>
>> to
>>
>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi_legacy)
>>
>> Now it's working again. I'm not sure if this is a problem with pulseaudio or
>> if the RTX 2070 does not support the mentioned codec.
> The runtime PM turns off the link, so the hotplug notification won't
> be delivered as default.  Please try reading the corresponding proc
> file, /proc/asound/card*/codec* file.  This may power up the codec and
> trigger the hotplug detection if that's the cause.
>
>
> Takashi
Jaroslav Kysela Feb. 2, 2020, 11 p.m. UTC | #4
Dne 02. 02. 20 v 15:18 Martin Regner napsal(a):
> Hi Takashi,
> 
> thanks for your reply. I tried that with
> 
> cat /proc/asound/card0/codec#0
> 
> but that doesn't help. I'm digging me through the kernel config right
> now. May have to change something else.
> 
> I simply could create a patch on my gentoo system switching from
> patch_nvhdmi to patch_nvhdmi_legacy for every new kernel, but that won't
> work forever.
> 
> If you have other thinks i could try i'd appreciate to hear them.

You may try to disable PM:

echo on > /sys/bus/pci/devices/0000\:01\:00.1/power/control

				Jaroslav


> 
> kind regards
> Martin
> 
> On 02.02.20 09:37, Takashi Iwai wrote:
>> On Sat, 01 Feb 2020 16:28:08 +0100,
>> Martin Regner wrote:
>>> Hi there,
>>>
>>> since i updated to kernel 5.5 i have no sound over hdmi anymore (GeForce RTX
>>> 2070).
>>>
>>> With the previous kernel 5.4.14 everything is fine.
>>>
>>> Although i got sound with speaker-test -D hdmi:CARD=NVidia,DEV=2 -c 2 -r
>>> 44100, pavucontrol shows all hdmi sound devices as unplugged.
>>>
>>> I bisected it down to this commit (5398e94fb753d022301825ebfa5f7cf8a660d8eb)
>>> and changed the line
>>>
>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi)
>>>
>>> to
>>>
>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi_legacy)
>>>
>>> Now it's working again. I'm not sure if this is a problem with pulseaudio or
>>> if the RTX 2070 does not support the mentioned codec.
>> The runtime PM turns off the link, so the hotplug notification won't
>> be delivered as default.  Please try reading the corresponding proc
>> file, /proc/asound/card*/codec* file.  This may power up the codec and
>> trigger the hotplug detection if that's the cause.
>>
>>
>> Takashi
> 
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
Martin Regner Feb. 2, 2020, 11:50 p.m. UTC | #5
Hi Jaroslav,

thanks for the tip. I tried this (in my case echo on  > 
/sys/bus/pci/devices/0000\:09\:00.1/power/control) but that didn't help.

If i comment out the line

spec->dyn_pcm_assign = true;

in patch_nvhdmi sound is working again.

Curiously nobody else seems to have this problem. This makes me think 
the problem lies elsewhere but i have no more ideas at the moment.

On 03.02.20 00:00, Jaroslav Kysela wrote:
> Dne 02. 02. 20 v 15:18 Martin Regner napsal(a):
>> Hi Takashi,
>>
>> thanks for your reply. I tried that with
>>
>> cat /proc/asound/card0/codec#0
>>
>> but that doesn't help. I'm digging me through the kernel config right
>> now. May have to change something else.
>>
>> I simply could create a patch on my gentoo system switching from
>> patch_nvhdmi to patch_nvhdmi_legacy for every new kernel, but that won't
>> work forever.
>>
>> If you have other thinks i could try i'd appreciate to hear them.
>
> You may try to disable PM:
>
> echo on > /sys/bus/pci/devices/0000\:01\:00.1/power/control
>
>                 Jaroslav
>
>
>>
>> kind regards
>> Martin
>>
>> On 02.02.20 09:37, Takashi Iwai wrote:
>>> On Sat, 01 Feb 2020 16:28:08 +0100,
>>> Martin Regner wrote:
>>>> Hi there,
>>>>
>>>> since i updated to kernel 5.5 i have no sound over hdmi anymore 
>>>> (GeForce RTX
>>>> 2070).
>>>>
>>>> With the previous kernel 5.4.14 everything is fine.
>>>>
>>>> Although i got sound with speaker-test -D hdmi:CARD=NVidia,DEV=2 -c 
>>>> 2 -r
>>>> 44100, pavucontrol shows all hdmi sound devices as unplugged.
>>>>
>>>> I bisected it down to this commit 
>>>> (5398e94fb753d022301825ebfa5f7cf8a660d8eb)
>>>> and changed the line
>>>>
>>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi)
>>>>
>>>> to
>>>>
>>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP", patch_nvhdmi_legacy)
>>>>
>>>> Now it's working again. I'm not sure if this is a problem with 
>>>> pulseaudio or
>>>> if the RTX 2070 does not support the mentioned codec.
>>> The runtime PM turns off the link, so the hotplug notification won't
>>> be delivered as default.  Please try reading the corresponding proc
>>> file, /proc/asound/card*/codec* file.  This may power up the codec and
>>> trigger the hotplug detection if that's the cause.
>>>
>>>
>>> Takashi
>>
>>
>> _______________________________________________
>> Alsa-devel mailing list
>> Alsa-devel@alsa-project.org
>> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>
>
>
Jaroslav Kysela Feb. 3, 2020, 7:37 a.m. UTC | #6
Dne 03. 02. 20 v 0:50 Martin Regner napsal(a):
> Hi Jaroslav,
> 
> thanks for the tip. I tried this (in my case echo on  >
> /sys/bus/pci/devices/0000\:09\:00.1/power/control) but that didn't help.
> 
> If i comment out the line
> 
> spec->dyn_pcm_assign = true;
> 
> in patch_nvhdmi sound is working again.

Could you show us (upload it to the alsa server and post only URLs) the output 
from alsa-info.sh for both variants (spec->dyn_pcm_assign = true and false) ?

					Thanks,
						Jaroslav

> 
> Curiously nobody else seems to have this problem. This makes me think
> the problem lies elsewhere but i have no more ideas at the moment.
> 
> On 03.02.20 00:00, Jaroslav Kysela wrote:
>> Dne 02. 02. 20 v 15:18 Martin Regner napsal(a):
>>> Hi Takashi,
>>>
>>> thanks for your reply. I tried that with
>>>
>>> cat /proc/asound/card0/codec#0
>>>
>>> but that doesn't help. I'm digging me through the kernel config right
>>> now. May have to change something else.
>>>
>>> I simply could create a patch on my gentoo system switching from
>>> patch_nvhdmi to patch_nvhdmi_legacy for every new kernel, but that won't
>>> work forever.
>>>
>>> If you have other thinks i could try i'd appreciate to hear them.
>>
>> You may try to disable PM:
>>
>> echo on > /sys/bus/pci/devices/0000\:01\:00.1/power/control
>>
>>                  Jaroslav
>>
>>
>>>
>>> kind regards
>>> Martin
>>>
>>> On 02.02.20 09:37, Takashi Iwai wrote:
>>>> On Sat, 01 Feb 2020 16:28:08 +0100,
>>>> Martin Regner wrote:
>>>>> Hi there,
>>>>>
>>>>> since i updated to kernel 5.5 i have no sound over hdmi anymore
>>>>> (GeForce RTX
>>>>> 2070).
>>>>>
>>>>> With the previous kernel 5.4.14 everything is fine.
>>>>>
>>>>> Although i got sound with speaker-test -D hdmi:CARD=NVidia,DEV=2 -c
>>>>> 2 -r
>>>>> 44100, pavucontrol shows all hdmi sound devices as unplugged.
>>>>>
>>>>> I bisected it down to this commit
>>>>> (5398e94fb753d022301825ebfa5f7cf8a660d8eb)
>>>>> and changed the line
>>>>>
>>>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi)
>>>>>
>>>>> to
>>>>>
>>>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP", patch_nvhdmi_legacy)
>>>>>
>>>>> Now it's working again. I'm not sure if this is a problem with
>>>>> pulseaudio or
>>>>> if the RTX 2070 does not support the mentioned codec.
>>>> The runtime PM turns off the link, so the hotplug notification won't
>>>> be delivered as default.  Please try reading the corresponding proc
>>>> file, /proc/asound/card*/codec* file.  This may power up the codec and
>>>> trigger the hotplug detection if that's the cause.
>>>>
>>>>
>>>> Takashi
>>>
>>>
>>> _______________________________________________
>>> Alsa-devel mailing list
>>> Alsa-devel@alsa-project.org
>>> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>>
>>
>>
>
Nikhil Mahale Feb. 3, 2020, 9:14 a.m. UTC | #7
hdmi_present_sense()
  |-> hdmi_present_sense_via_verbs()
code path need to query PCM jack using pin_idx_to_jack() function and update
its status, just like sync_eld_via_acomp().

Sending patch to get it fixed.

Thanks,
Nikhil Mahale

On 2/3/20 1:07 PM, Jaroslav Kysela wrote:
> External email: Use caution opening links or attachments
> 
> 
> Dne 03. 02. 20 v 0:50 Martin Regner napsal(a):
>> Hi Jaroslav,
>>
>> thanks for the tip. I tried this (in my case echo on  >
>> /sys/bus/pci/devices/0000\:09\:00.1/power/control) but that didn't help.
>>
>> If i comment out the line
>>
>> spec->dyn_pcm_assign = true;
>>
>> in patch_nvhdmi sound is working again.
> 
> Could you show us (upload it to the alsa server and post only URLs) the output
> from alsa-info.sh for both variants (spec->dyn_pcm_assign = true and false) ?
> 
>                                        Thanks,
>                                                Jaroslav
> 
>>
>> Curiously nobody else seems to have this problem. This makes me think
>> the problem lies elsewhere but i have no more ideas at the moment.
>>
>> On 03.02.20 00:00, Jaroslav Kysela wrote:
>>> Dne 02. 02. 20 v 15:18 Martin Regner napsal(a):
>>>> Hi Takashi,
>>>>
>>>> thanks for your reply. I tried that with
>>>>
>>>> cat /proc/asound/card0/codec#0
>>>>
>>>> but that doesn't help. I'm digging me through the kernel config right
>>>> now. May have to change something else.
>>>>
>>>> I simply could create a patch on my gentoo system switching from
>>>> patch_nvhdmi to patch_nvhdmi_legacy for every new kernel, but that won't
>>>> work forever.
>>>>
>>>> If you have other thinks i could try i'd appreciate to hear them.
>>>
>>> You may try to disable PM:
>>>
>>> echo on > /sys/bus/pci/devices/0000\:01\:00.1/power/control
>>>
>>>                  Jaroslav
>>>
>>>
>>>>
>>>> kind regards
>>>> Martin
>>>>
>>>> On 02.02.20 09:37, Takashi Iwai wrote:
>>>>> On Sat, 01 Feb 2020 16:28:08 +0100,
>>>>> Martin Regner wrote:
>>>>>> Hi there,
>>>>>>
>>>>>> since i updated to kernel 5.5 i have no sound over hdmi anymore
>>>>>> (GeForce RTX
>>>>>> 2070).
>>>>>>
>>>>>> With the previous kernel 5.4.14 everything is fine.
>>>>>>
>>>>>> Although i got sound with speaker-test -D hdmi:CARD=NVidia,DEV=2 -c
>>>>>> 2 -r
>>>>>> 44100, pavucontrol shows all hdmi sound devices as unplugged.
>>>>>>
>>>>>> I bisected it down to this commit
>>>>>> (5398e94fb753d022301825ebfa5f7cf8a660d8eb)
>>>>>> and changed the line
>>>>>>
>>>>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP",  patch_nvhdmi)
>>>>>>
>>>>>> to
>>>>>>
>>>>>> HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP", patch_nvhdmi_legacy)
>>>>>>
>>>>>> Now it's working again. I'm not sure if this is a problem with
>>>>>> pulseaudio or
>>>>>> if the RTX 2070 does not support the mentioned codec.
>>>>> The runtime PM turns off the link, so the hotplug notification won't
>>>>> be delivered as default.  Please try reading the corresponding proc
>>>>> file, /proc/asound/card*/codec* file.  This may power up the codec and
>>>>> trigger the hotplug detection if that's the cause.
>>>>>
>>>>>
>>>>> Takashi
>>>>
>>>>
>>>> _______________________________________________
>>>> Alsa-devel mailing list
>>>> Alsa-devel@alsa-project.org
>>>> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>>>
>>>
>>>
>>
> 
> 
> -- 
> Jaroslav Kysela <perex@perex.cz>
> Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
diff mbox series

Patch

diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 1ba485da17c0..7c2b251e96c5 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1337,15 +1337,32 @@  static int hdmi_read_pin_conn(struct hda_codec *codec, int pin_idx)
 }
 
 static int hdmi_find_pcm_slot(struct hdmi_spec *spec,
-				struct hdmi_spec_per_pin *per_pin)
+			      struct hdmi_spec_per_pin *per_pin)
 {
 	int i;
 
-	/* try the prefer PCM */
-	if (!test_bit(per_pin->pin_nid_idx, &spec->pcm_bitmap))
+	/*
+	 * generic_hdmi_build_pcms() allocates (num_nids + dev_num - 1)
+	 * number of pcms.
+	 *
+	 * The per_pin of pin_nid_idx=n and dev_id=m prefers to get pcm-n
+	 * if m==0. This guarantees that dynamic pcm assignments are compatible
+	 * with the legacy static per_pin-pmc assignment that existed in the
+	 * days before DP-MST.
+	 *
+	 * per_pin of m!=0 prefers to get pcm=(num_nids + (m - 1)).
+	 */
+	if (per_pin->dev_id == 0 &&
+	    !test_bit(per_pin->pin_nid_idx, &spec->pcm_bitmap))
 		return per_pin->pin_nid_idx;
 
-	/* have a second try; check the "reserved area" over num_pins */
+	if (per_pin->dev_id != 0 &&
+	    !(test_bit(spec->num_nids + (per_pin->dev_id - 1),
+		&spec->pcm_bitmap))) {
+		return spec->num_nids + (per_pin->dev_id - 1);
+	}
+
+	/* have a second try; check the area over num_nids */
 	for (i = spec->num_nids; i < spec->pcm_used; i++) {
 		if (!test_bit(i, &spec->pcm_bitmap))
 			return i;
@@ -3519,6 +3536,40 @@  static int patch_nvhdmi(struct hda_codec *codec)
 	struct hdmi_spec *spec;
 	int err;
 
+	err = alloc_generic_hdmi(codec);
+	if (err < 0)
+		return err;
+	codec->dp_mst = true;
+
+	spec = codec->spec;
+	spec->dyn_pcm_assign = true;
+
+	err = hdmi_parse_codec(codec);
+	if (err < 0) {
+		generic_spec_free(codec);
+		return err;
+	}
+
+	generic_hdmi_init_per_pins(codec);
+
+	spec->dyn_pin_out = true;
+
+	spec->chmap.ops.chmap_cea_alloc_validate_get_type =
+		nvhdmi_chmap_cea_alloc_validate_get_type;
+	spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate;
+
+	codec->link_down_at_suspend = 1;
+
+	generic_acomp_init(codec, &nvhdmi_audio_ops, nvhdmi_port2pin);
+
+	return 0;
+}
+
+static int patch_nvhdmi_legacy(struct hda_codec *codec)
+{
+	struct hdmi_spec *spec;
+	int err;
+
 	err = patch_generic_hdmi(codec);
 	if (err)
 		return err;
@@ -4127,25 +4178,25 @@  HDA_CODEC_ENTRY(0x10de0004, "GPU 04 HDMI",	patch_nvhdmi_8ch_7x),
 HDA_CODEC_ENTRY(0x10de0005, "MCP77/78 HDMI",	patch_nvhdmi_8ch_7x),
 HDA_CODEC_ENTRY(0x10de0006, "MCP77/78 HDMI",	patch_nvhdmi_8ch_7x),
 HDA_CODEC_ENTRY(0x10de0007, "MCP79/7A HDMI",	patch_nvhdmi_8ch_7x),
-HDA_CODEC_ENTRY(0x10de0008, "GPU 08 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0009, "GPU 09 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de000a, "GPU 0a HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de000b, "GPU 0b HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de000c, "MCP89 HDMI",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de000d, "GPU 0d HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0010, "GPU 10 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0011, "GPU 11 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0012, "GPU 12 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0013, "GPU 13 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0014, "GPU 14 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0015, "GPU 15 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0016, "GPU 16 HDMI/DP",	patch_nvhdmi),
+HDA_CODEC_ENTRY(0x10de0008, "GPU 08 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0009, "GPU 09 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de000a, "GPU 0a HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de000b, "GPU 0b HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de000c, "MCP89 HDMI",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de000d, "GPU 0d HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0010, "GPU 10 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0011, "GPU 11 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0012, "GPU 12 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0013, "GPU 13 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0014, "GPU 14 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0015, "GPU 15 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0016, "GPU 16 HDMI/DP",	patch_nvhdmi_legacy),
 /* 17 is known to be absent */
-HDA_CODEC_ENTRY(0x10de0018, "GPU 18 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de0019, "GPU 19 HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de001a, "GPU 1a HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de001b, "GPU 1b HDMI/DP",	patch_nvhdmi),
-HDA_CODEC_ENTRY(0x10de001c, "GPU 1c HDMI/DP",	patch_nvhdmi),
+HDA_CODEC_ENTRY(0x10de0018, "GPU 18 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de0019, "GPU 19 HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de001a, "GPU 1a HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de001b, "GPU 1b HDMI/DP",	patch_nvhdmi_legacy),
+HDA_CODEC_ENTRY(0x10de001c, "GPU 1c HDMI/DP",	patch_nvhdmi_legacy),
 HDA_CODEC_ENTRY(0x10de0020, "Tegra30 HDMI",	patch_tegra_hdmi),
 HDA_CODEC_ENTRY(0x10de0022, "Tegra114 HDMI",	patch_tegra_hdmi),
 HDA_CODEC_ENTRY(0x10de0028, "Tegra124 HDMI",	patch_tegra_hdmi),