Commit 234b4346 authored by Pascal de Bruijn's avatar Pascal de Bruijn Committed by Takashi Iwai

ALSA: hda - Add function id to proc output

This patch does two things:
 Output Intel HDA Function Id in /proc/asound/cardX/codec#X
 Align Vendor/Subsystem/Revision Ids to 8 characters, front-padded with zeros

Before:
 Vendor Id: 0x11d41884
 Subsystem Id: 0x103c281a
 Revision Id: 0x100100

After:
 Function Id: 0x1
 Vendor Id: 0x11d41884
 Subsystem Id: 0x103c281a
 Revision Id: 0x0100100

As report on the Kernel Bugzilla #12888
Signed-off-by: default avatarPascal de Bruijn <pascal@unilogicnetworks.net>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent c9840cf4
...@@ -647,9 +647,9 @@ static void /*__devinit*/ setup_fg_nodes(struct hda_codec *codec) ...@@ -647,9 +647,9 @@ static void /*__devinit*/ setup_fg_nodes(struct hda_codec *codec)
total_nodes = snd_hda_get_sub_nodes(codec, AC_NODE_ROOT, &nid); total_nodes = snd_hda_get_sub_nodes(codec, AC_NODE_ROOT, &nid);
for (i = 0; i < total_nodes; i++, nid++) { for (i = 0; i < total_nodes; i++, nid++) {
unsigned int func; codec->function_id = snd_hda_param_read(codec, nid,
func = snd_hda_param_read(codec, nid, AC_PAR_FUNCTION_TYPE); AC_PAR_FUNCTION_TYPE) & 0xff;
switch (func & 0xff) { switch (codec->function_id) {
case AC_GRP_AUDIO_FUNCTION: case AC_GRP_AUDIO_FUNCTION:
codec->afg = nid; codec->afg = nid;
break; break;
......
...@@ -739,6 +739,7 @@ struct hda_codec { ...@@ -739,6 +739,7 @@ struct hda_codec {
hda_nid_t mfg; /* MFG node id */ hda_nid_t mfg; /* MFG node id */
/* ids */ /* ids */
u32 function_id;
u32 vendor_id; u32 vendor_id;
u32 subsystem_id; u32 subsystem_id;
u32 revision_id; u32 revision_id;
......
...@@ -469,8 +469,9 @@ static void print_codec_info(struct snd_info_entry *entry, ...@@ -469,8 +469,9 @@ static void print_codec_info(struct snd_info_entry *entry,
snd_iprintf(buffer, "Codec: %s\n", snd_iprintf(buffer, "Codec: %s\n",
codec->name ? codec->name : "Not Set"); codec->name ? codec->name : "Not Set");
snd_iprintf(buffer, "Address: %d\n", codec->addr); snd_iprintf(buffer, "Address: %d\n", codec->addr);
snd_iprintf(buffer, "Vendor Id: 0x%x\n", codec->vendor_id); snd_iprintf(buffer, "Function Id: 0x%x\n", codec->function_id);
snd_iprintf(buffer, "Subsystem Id: 0x%x\n", codec->subsystem_id); snd_iprintf(buffer, "Vendor Id: 0x%08x\n", codec->vendor_id);
snd_iprintf(buffer, "Subsystem Id: 0x%08x\n", codec->subsystem_id);
snd_iprintf(buffer, "Revision Id: 0x%x\n", codec->revision_id); snd_iprintf(buffer, "Revision Id: 0x%x\n", codec->revision_id);
if (codec->mfg) if (codec->mfg)
......
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