Commit e1716139 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela

[ALSA] hda-intel - Show more volume-knob attributes

Show more attributs of volume-knob widgets.
Also don't put empty lines when no connection list is found.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent 9b1fffdd
...@@ -135,6 +135,7 @@ enum { ...@@ -135,6 +135,7 @@ enum {
#define AC_PAR_PROC_CAP 0x10 #define AC_PAR_PROC_CAP 0x10
#define AC_PAR_GPIO_CAP 0x11 #define AC_PAR_GPIO_CAP 0x11
#define AC_PAR_AMP_OUT_CAP 0x12 #define AC_PAR_AMP_OUT_CAP 0x12
#define AC_PAR_VOL_KNB_CAP 0x13
/* /*
* AC_VERB_PARAMETERS results (32bit) * AC_VERB_PARAMETERS results (32bit)
......
...@@ -305,6 +305,12 @@ static void print_codec_info(struct snd_info_entry *entry, ...@@ -305,6 +305,12 @@ static void print_codec_info(struct snd_info_entry *entry,
snd_iprintf(buffer, " Amp-Out"); snd_iprintf(buffer, " Amp-Out");
snd_iprintf(buffer, "\n"); snd_iprintf(buffer, "\n");
/* volume knob is a special widget that always have connection
* list
*/
if (wid_type == AC_WID_VOL_KNB)
wid_caps |= AC_WCAP_CONN_LIST;
if (wid_caps & AC_WCAP_CONN_LIST) if (wid_caps & AC_WCAP_CONN_LIST)
conn_len = snd_hda_get_connections(codec, nid, conn, conn_len = snd_hda_get_connections(codec, nid, conn,
HDA_MAX_CONNECTIONS); HDA_MAX_CONNECTIONS);
...@@ -340,9 +346,15 @@ static void print_codec_info(struct snd_info_entry *entry, ...@@ -340,9 +346,15 @@ static void print_codec_info(struct snd_info_entry *entry,
snd_iprintf(buffer, "\n"); snd_iprintf(buffer, "\n");
break; break;
case AC_WID_VOL_KNB: case AC_WID_VOL_KNB:
snd_iprintf(buffer, " Volume-Knob: 0x%x\n", pinctls = snd_hda_param_read(codec, nid,
snd_hda_codec_read(codec, nid, 0, AC_PAR_VOL_KNB_CAP);
AC_VERB_GET_VOLUME_KNOB_CONTROL, 0)); snd_iprintf(buffer, " Volume-Knob: delta=%d, "
"steps=%d, ",
(pinctls >> 7) & 1, pinctls & 0x7f);
pinctls = snd_hda_codec_read(codec, nid, 0,
AC_VERB_GET_VOLUME_KNOB_CONTROL, 0);
snd_iprintf(buffer, "direct=%d, val=%d\n",
(pinctls >> 7) & 1, pinctls & 0x7f);
break; break;
case AC_WID_AUD_OUT: case AC_WID_AUD_OUT:
case AC_WID_AUD_IN: case AC_WID_AUD_IN:
...@@ -365,6 +377,7 @@ static void print_codec_info(struct snd_info_entry *entry, ...@@ -365,6 +377,7 @@ static void print_codec_info(struct snd_info_entry *entry,
curr = snd_hda_codec_read(codec, nid, 0, curr = snd_hda_codec_read(codec, nid, 0,
AC_VERB_GET_CONNECT_SEL, 0); AC_VERB_GET_CONNECT_SEL, 0);
snd_iprintf(buffer, " Connection: %d\n", conn_len); snd_iprintf(buffer, " Connection: %d\n", conn_len);
if (conn_len > 0) {
snd_iprintf(buffer, " "); snd_iprintf(buffer, " ");
for (c = 0; c < conn_len; c++) { for (c = 0; c < conn_len; c++) {
snd_iprintf(buffer, " 0x%02x", conn[c]); snd_iprintf(buffer, " 0x%02x", conn[c]);
...@@ -374,6 +387,7 @@ static void print_codec_info(struct snd_info_entry *entry, ...@@ -374,6 +387,7 @@ static void print_codec_info(struct snd_info_entry *entry,
snd_iprintf(buffer, "\n"); snd_iprintf(buffer, "\n");
} }
} }
}
snd_hda_power_down(codec); snd_hda_power_down(codec);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment