ALSA: hda - Add In-driver connection info
authorWang Xingchao <xingchao.wang@linux.intel.com>
Tue, 25 Jun 2013 03:41:23 +0000 (23:41 -0400)
committerTakashi Iwai <tiwai@suse.de>
Tue, 25 Jun 2013 06:13:56 +0000 (08:13 +0200)
Pin's connection list may change dynamically with hot-plug event
on Intel Haswell chip. Users would see connections be "0" in codec#.
when play audio on this pin, software driver choose converter from cache
connections. So add "In-driver connection" info to avoid confuse when
raw connections are different with cache connection.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_proc.c

index 0fee8fae590a35b1f6535fc88763a1739c3dda2d..9760f001916d8c72add740db2314793a3e027318 100644 (file)
@@ -504,6 +504,8 @@ static void print_conn_list(struct snd_info_buffer *buffer,
                            int conn_len)
 {
        int c, curr = -1;
+       const hda_nid_t *list;
+       int cache_len;
 
        if (conn_len > 1 &&
            wid_type != AC_WID_AUD_MIX &&
@@ -521,6 +523,19 @@ static void print_conn_list(struct snd_info_buffer *buffer,
                }
                snd_iprintf(buffer, "\n");
        }
+
+       /* Get Cache connections info */
+       cache_len = snd_hda_get_conn_list(codec, nid, &list);
+       if (cache_len != conn_len
+                       || memcmp(list, conn, conn_len)) {
+               snd_iprintf(buffer, "  In-driver Connection: %d\n", cache_len);
+               if (cache_len > 0) {
+                       snd_iprintf(buffer, "    ");
+                       for (c = 0; c < cache_len; c++)
+                               snd_iprintf(buffer, " 0x%02x", list[c]);
+                       snd_iprintf(buffer, "\n");
+               }
+       }
 }
 
 static void print_gpio(struct snd_info_buffer *buffer,