[SRU][OEM-5.6/G/unstable][PATCH 1/1] UBUNTU: SAUCE: Revert "ALSA: hda - Disable audio component for legacy Nvidia HDMI codecs"

Hui Wang hui.wang at canonical.com
Thu May 14 08:00:57 UTC 2020


BugLink: https://bugs.launchpad.net/bugs/1878554

This reverts commit c91775c0b37249366e616705e5a27a238d7e79ac.

There are two reasons to revert this patch:
1) the reverted patch should disable the component for
   patch_nvhdmi_legacy() instead of patch_nvhdmi(), and in the kernel
   of mainline, the patch_nvhdmi() still has component.
2) the nvidia prorprietary graphic driver 440.82 already supported
   component, this needs the patch_nvhdmi() to also support component,
   otherwise the hdmi audio could not work.

Signed-off-by: Hui Wang <hui.wang at canonical.com>
---
 sound/pci/hda/patch_hdmi.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index d5c4185c6dcf..8bc4d66ff986 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -3544,6 +3544,26 @@ static int nvhdmi_chmap_validate(struct hdac_chmap *chmap,
 	return 0;
 }
 
+/* map from pin NID to port; port is 0-based */
+/* for Nvidia: assume widget NID starting from 4, with step 1 (4, 5, 6, ...) */
+static int nvhdmi_pin2port(void *audio_ptr, int pin_nid)
+{
+	return pin_nid - 4;
+}
+
+/* reverse-map from port to pin NID: see above */
+static int nvhdmi_port2pin(struct hda_codec *codec, int port)
+{
+	return port + 4;
+}
+
+static const struct drm_audio_component_audio_ops nvhdmi_audio_ops = {
+	.pin2port = nvhdmi_pin2port,
+	.pin_eld_notify = generic_acomp_pin_eld_notify,
+	.master_bind = generic_acomp_master_bind,
+	.master_unbind = generic_acomp_master_unbind,
+};
+
 static int patch_nvhdmi(struct hda_codec *codec)
 {
 	struct hdmi_spec *spec;
@@ -3573,6 +3593,8 @@ static int patch_nvhdmi(struct hda_codec *codec)
 
 	codec->link_down_at_suspend = 1;
 
+	generic_acomp_init(codec, &nvhdmi_audio_ops, nvhdmi_port2pin);
+
 	return 0;
 }
 
-- 
2.17.1




More information about the kernel-team mailing list