diff options
Diffstat (limited to 'sound/pci/hda/hda_proc.c')
-rw-r--r-- | sound/pci/hda/hda_proc.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c index 512eb674b743..d956e9769133 100644 --- a/sound/pci/hda/hda_proc.c +++ b/sound/pci/hda/hda_proc.c | |||
@@ -107,23 +107,33 @@ void snd_print_pcm_rates(int pcm, char *buf, int buflen) | |||
107 | static void print_pcm_rates(struct snd_info_buffer *buffer, unsigned int pcm) | 107 | static void print_pcm_rates(struct snd_info_buffer *buffer, unsigned int pcm) |
108 | { | 108 | { |
109 | char buf[SND_PRINT_RATES_ADVISED_BUFSIZE]; | 109 | char buf[SND_PRINT_RATES_ADVISED_BUFSIZE]; |
110 | |||
110 | pcm &= AC_SUPPCM_RATES; | 111 | pcm &= AC_SUPPCM_RATES; |
111 | snd_iprintf(buffer, " rates [0x%x]:", pcm); | 112 | snd_iprintf(buffer, " rates [0x%x]:", pcm); |
112 | snd_print_pcm_rates(pcm, buf, sizeof(buf)); | 113 | snd_print_pcm_rates(pcm, buf, sizeof(buf)); |
113 | snd_iprintf(buffer, "%s\n", buf); | 114 | snd_iprintf(buffer, "%s\n", buf); |
114 | } | 115 | } |
115 | 116 | ||
116 | static void print_pcm_bits(struct snd_info_buffer *buffer, unsigned int pcm) | 117 | void snd_print_pcm_bits(int pcm, char *buf, int buflen) |
117 | { | 118 | { |
118 | static unsigned int bits[] = { 8, 16, 20, 24, 32 }; | 119 | static unsigned int bits[] = { 8, 16, 20, 24, 32 }; |
119 | int i; | 120 | int i, j; |
121 | |||
122 | for (i = 0, j = 0; i < ARRAY_SIZE(bits); i++) | ||
123 | if (pcm & (1 << i)) | ||
124 | j += snprintf(buf + j, buflen - j, " %d", bits[i]); | ||
125 | |||
126 | buf[j] = '\0'; /* necessary when j == 0 */ | ||
127 | } | ||
128 | |||
129 | static void print_pcm_bits(struct snd_info_buffer *buffer, unsigned int pcm) | ||
130 | { | ||
131 | char buf[SND_PRINT_BITS_ADVISED_BUFSIZE]; | ||
120 | 132 | ||
121 | pcm = (pcm >> 16) & 0xff; | 133 | pcm = (pcm >> 16) & 0xff; |
122 | snd_iprintf(buffer, " bits [0x%x]:", pcm); | 134 | snd_iprintf(buffer, " bits [0x%x]:", pcm); |
123 | for (i = 0; i < ARRAY_SIZE(bits); i++) | 135 | snd_print_pcm_bits(pcm, buf, sizeof(buf)); |
124 | if (pcm & (1 << i)) | 136 | snd_iprintf(buffer, "%s\n", buf); |
125 | snd_iprintf(buffer, " %d", bits[i]); | ||
126 | snd_iprintf(buffer, "\n"); | ||
127 | } | 137 | } |
128 | 138 | ||
129 | static void print_pcm_formats(struct snd_info_buffer *buffer, | 139 | static void print_pcm_formats(struct snd_info_buffer *buffer, |