[ALSA] hda-codec - Verbose proc output for PCM parameters
Make the output for PCM parameters more verbose, showing each rate, bits and format. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
ee3527b036
commit
b90d7760ea
|
@ -88,6 +88,48 @@ static void print_amp_vals(struct snd_info_buffer *buffer,
|
||||||
snd_iprintf(buffer, "\n");
|
snd_iprintf(buffer, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void print_pcm_rates(struct snd_info_buffer *buffer, unsigned int pcm)
|
||||||
|
{
|
||||||
|
static unsigned int rates[] = {
|
||||||
|
8000, 11025, 16000, 22050, 32000, 44100, 48000, 88200,
|
||||||
|
96000, 176400, 192000, 384000
|
||||||
|
};
|
||||||
|
int i;
|
||||||
|
|
||||||
|
pcm &= AC_SUPPCM_RATES;
|
||||||
|
snd_iprintf(buffer, " rates [0x%x]:", pcm);
|
||||||
|
for (i = 0; i < ARRAY_SIZE(rates); i++)
|
||||||
|
if (pcm & (1 << i))
|
||||||
|
snd_iprintf(buffer, " %d", rates[i]);
|
||||||
|
snd_iprintf(buffer, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_pcm_bits(struct snd_info_buffer *buffer, unsigned int pcm)
|
||||||
|
{
|
||||||
|
static unsigned int bits[] = { 8, 16, 20, 24, 32 };
|
||||||
|
int i;
|
||||||
|
|
||||||
|
pcm = (pcm >> 16) & 0xff;
|
||||||
|
snd_iprintf(buffer, " bits [0x%x]:", pcm);
|
||||||
|
for (i = 0; i < ARRAY_SIZE(bits); i++)
|
||||||
|
if (pcm & (1 << i))
|
||||||
|
snd_iprintf(buffer, " %d", bits[i]);
|
||||||
|
snd_iprintf(buffer, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void print_pcm_formats(struct snd_info_buffer *buffer,
|
||||||
|
unsigned int streams)
|
||||||
|
{
|
||||||
|
snd_iprintf(buffer, " formats [0x%x]:", streams & 0xf);
|
||||||
|
if (streams & AC_SUPFMT_PCM)
|
||||||
|
snd_iprintf(buffer, " PCM");
|
||||||
|
if (streams & AC_SUPFMT_FLOAT32)
|
||||||
|
snd_iprintf(buffer, " FLOAT");
|
||||||
|
if (streams & AC_SUPFMT_AC3)
|
||||||
|
snd_iprintf(buffer, " AC3");
|
||||||
|
snd_iprintf(buffer, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
static void print_pcm_caps(struct snd_info_buffer *buffer,
|
static void print_pcm_caps(struct snd_info_buffer *buffer,
|
||||||
struct hda_codec *codec, hda_nid_t nid)
|
struct hda_codec *codec, hda_nid_t nid)
|
||||||
{
|
{
|
||||||
|
@ -97,8 +139,9 @@ static void print_pcm_caps(struct snd_info_buffer *buffer,
|
||||||
snd_iprintf(buffer, "N/A\n");
|
snd_iprintf(buffer, "N/A\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
snd_iprintf(buffer, "rates 0x%03x, bits 0x%02x, types 0x%x\n",
|
print_pcm_rates(buffer, pcm);
|
||||||
pcm & AC_SUPPCM_RATES, (pcm >> 16) & 0xff, stream & 0xf);
|
print_pcm_bits(buffer, pcm);
|
||||||
|
print_pcm_formats(buffer, stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *get_jack_location(u32 cfg)
|
static const char *get_jack_location(u32 cfg)
|
||||||
|
@ -210,7 +253,7 @@ static void print_codec_info(struct snd_info_entry *entry, struct snd_info_buffe
|
||||||
snd_iprintf(buffer, "Revision Id: 0x%x\n", codec->revision_id);
|
snd_iprintf(buffer, "Revision Id: 0x%x\n", codec->revision_id);
|
||||||
if (! codec->afg)
|
if (! codec->afg)
|
||||||
return;
|
return;
|
||||||
snd_iprintf(buffer, "Default PCM: ");
|
snd_iprintf(buffer, "Default PCM:\n");
|
||||||
print_pcm_caps(buffer, codec, codec->afg);
|
print_pcm_caps(buffer, codec, codec->afg);
|
||||||
snd_iprintf(buffer, "Default Amp-In caps: ");
|
snd_iprintf(buffer, "Default Amp-In caps: ");
|
||||||
print_amp_caps(buffer, codec, codec->afg, HDA_INPUT);
|
print_amp_caps(buffer, codec, codec->afg, HDA_INPUT);
|
||||||
|
@ -278,7 +321,7 @@ static void print_codec_info(struct snd_info_entry *entry, struct snd_info_buffe
|
||||||
|
|
||||||
if ((wid_type == AC_WID_AUD_OUT || wid_type == AC_WID_AUD_IN) &&
|
if ((wid_type == AC_WID_AUD_OUT || wid_type == AC_WID_AUD_IN) &&
|
||||||
(wid_caps & AC_WCAP_FORMAT_OVRD)) {
|
(wid_caps & AC_WCAP_FORMAT_OVRD)) {
|
||||||
snd_iprintf(buffer, " PCM: ");
|
snd_iprintf(buffer, " PCM:\n");
|
||||||
print_pcm_caps(buffer, codec, nid);
|
print_pcm_caps(buffer, codec, nid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue