ALSA: hda/hdmi: ELD procfs - print the codec NIDs
authorJaroslav Kysela <perex@perex.cz>
Wed, 21 Sep 2022 09:33:49 +0000 (11:33 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 21 Sep 2022 10:12:29 +0000 (12:12 +0200)
It is useful for the debugging to print also the used HDA codec NIDs
used for the given HDMI device. With the dynamic converter assignment
the converter NID is changed dynamically.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20220921093349.82680-1-perex@perex.cz
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_eld.c
sound/pci/hda/hda_local.h
sound/pci/hda/patch_hdmi.c

index 9e97443795f837323aef902fa3f16970eb3d9413..1d108ed5c6f2518a33db6e78ddaff2301319dbff 100644 (file)
@@ -440,7 +440,8 @@ static void hdmi_print_sad_info(int i, struct cea_sad *a,
 }
 
 void snd_hdmi_print_eld_info(struct hdmi_eld *eld,
-                            struct snd_info_buffer *buffer)
+                            struct snd_info_buffer *buffer,
+                            hda_nid_t pin_nid, int dev_id, hda_nid_t cvt_nid)
 {
        struct parsed_hdmi_eld *e = &eld->info;
        char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE];
@@ -462,6 +463,9 @@ void snd_hdmi_print_eld_info(struct hdmi_eld *eld,
 
        snd_iprintf(buffer, "monitor_present\t\t%d\n", eld->monitor_present);
        snd_iprintf(buffer, "eld_valid\t\t%d\n", eld->eld_valid);
+       snd_iprintf(buffer, "codec_pin_nid\t\t0x%x\n", pin_nid);
+       snd_iprintf(buffer, "codec_dev_id\t\t0x%x\n", dev_id);
+       snd_iprintf(buffer, "codec_cvt_nid\t\t0x%x\n", cvt_nid);
        if (!eld->eld_valid)
                return;
        snd_iprintf(buffer, "monitor_name\t\t%s\n", e->monitor_name);
index 682dca2057dbe39b3a3b2e7105f5f3acb1bec296..53a5a62b78fa9823d1658839c5fe810f451f8f60 100644 (file)
@@ -712,7 +712,8 @@ int snd_hdmi_get_eld_ati(struct hda_codec *codec, hda_nid_t nid,
 
 #ifdef CONFIG_SND_PROC_FS
 void snd_hdmi_print_eld_info(struct hdmi_eld *eld,
-                            struct snd_info_buffer *buffer);
+                            struct snd_info_buffer *buffer,
+                            hda_nid_t pin_nid, int dev_id, hda_nid_t cvt_nid);
 void snd_hdmi_write_eld_info(struct hdmi_eld *eld,
                             struct snd_info_buffer *buffer);
 #endif
index 11c22dfced068452f9af291791834792890cc05d..d2c6ba2634f14e60da084967a8270b72feb860d0 100644 (file)
@@ -496,7 +496,8 @@ static void print_eld_info(struct snd_info_entry *entry,
        struct hdmi_spec_per_pin *per_pin = entry->private_data;
 
        mutex_lock(&per_pin->lock);
-       snd_hdmi_print_eld_info(&per_pin->sink_eld, buffer);
+       snd_hdmi_print_eld_info(&per_pin->sink_eld, buffer, per_pin->pin_nid,
+                               per_pin->dev_id, per_pin->cvt_nid);
        mutex_unlock(&per_pin->lock);
 }