Commit 2d34e1b3 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Add IDT/STAC-specific proc output

Added power-map and analog-loopback information to proc output for
IDT/STAC codecs.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent bb40abe2
...@@ -493,6 +493,8 @@ static void print_codec_info(struct snd_info_entry *entry, ...@@ -493,6 +493,8 @@ static void print_codec_info(struct snd_info_entry *entry,
} }
print_gpio(buffer, codec, codec->afg); print_gpio(buffer, codec, codec->afg);
if (codec->proc_widget_hook)
codec->proc_widget_hook(buffer, codec, codec->afg);
for (i = 0; i < nodes; i++, nid++) { for (i = 0; i < nodes; i++, nid++) {
unsigned int wid_caps = unsigned int wid_caps =
......
...@@ -4262,6 +4262,52 @@ static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) ...@@ -4262,6 +4262,52 @@ static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res)
} }
} }
#ifdef CONFIG_PROC_FS
static void stac92hd_proc_hook(struct snd_info_buffer *buffer,
struct hda_codec *codec, hda_nid_t nid)
{
if (nid == codec->afg)
snd_iprintf(buffer, "Power-Map: 0x%02x\n",
snd_hda_codec_read(codec, nid, 0, 0x0fec, 0x0));
}
static void analog_loop_proc_hook(struct snd_info_buffer *buffer,
struct hda_codec *codec,
unsigned int verb)
{
snd_iprintf(buffer, "Analog Loopback: 0x%02x\n",
snd_hda_codec_read(codec, codec->afg, 0, verb, 0));
}
/* stac92hd71bxx, stac92hd73xx */
static void stac92hd7x_proc_hook(struct snd_info_buffer *buffer,
struct hda_codec *codec, hda_nid_t nid)
{
stac92hd_proc_hook(buffer, codec, nid);
if (nid == codec->afg)
analog_loop_proc_hook(buffer, codec, 0xfa0);
}
static void stac9205_proc_hook(struct snd_info_buffer *buffer,
struct hda_codec *codec, hda_nid_t nid)
{
if (nid == codec->afg)
analog_loop_proc_hook(buffer, codec, 0xfe0);
}
static void stac927x_proc_hook(struct snd_info_buffer *buffer,
struct hda_codec *codec, hda_nid_t nid)
{
if (nid == codec->afg)
analog_loop_proc_hook(buffer, codec, 0xfeb);
}
#else
#define stac92hd_proc_hook NULL
#define stac92hd7x_proc_hook NULL
#define stac9205_proc_hook NULL
#define stac927x_proc_hook NULL
#endif
#ifdef SND_HDA_NEEDS_RESUME #ifdef SND_HDA_NEEDS_RESUME
static int stac92xx_resume(struct hda_codec *codec) static int stac92xx_resume(struct hda_codec *codec)
{ {
...@@ -4585,6 +4631,8 @@ static int patch_stac92hd73xx(struct hda_codec *codec) ...@@ -4585,6 +4631,8 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
codec->patch_ops = stac92xx_patch_ops; codec->patch_ops = stac92xx_patch_ops;
codec->proc_widget_hook = stac92hd7x_proc_hook;
return 0; return 0;
} }
...@@ -4671,6 +4719,8 @@ static int patch_stac92hd83xxx(struct hda_codec *codec) ...@@ -4671,6 +4719,8 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
codec->patch_ops = stac92xx_patch_ops; codec->patch_ops = stac92xx_patch_ops;
codec->proc_widget_hook = stac92hd_proc_hook;
return 0; return 0;
} }
...@@ -4889,6 +4939,8 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) ...@@ -4889,6 +4939,8 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
return err; return err;
} }
codec->proc_widget_hook = stac92hd7x_proc_hook;
return 0; return 0;
}; };
...@@ -5109,6 +5161,8 @@ static int patch_stac927x(struct hda_codec *codec) ...@@ -5109,6 +5161,8 @@ static int patch_stac927x(struct hda_codec *codec)
codec->patch_ops = stac92xx_patch_ops; codec->patch_ops = stac92xx_patch_ops;
codec->proc_widget_hook = stac927x_proc_hook;
/* /*
* !!FIXME!! * !!FIXME!!
* The STAC927x seem to require fairly long delays for certain * The STAC927x seem to require fairly long delays for certain
...@@ -5224,6 +5278,8 @@ static int patch_stac9205(struct hda_codec *codec) ...@@ -5224,6 +5278,8 @@ static int patch_stac9205(struct hda_codec *codec)
codec->patch_ops = stac92xx_patch_ops; codec->patch_ops = stac92xx_patch_ops;
codec->proc_widget_hook = stac9205_proc_hook;
return 0; return 0;
} }
......
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