ALSA: hda - properly print ELD sample bits
authorWu Fengguang <wfg@linux.intel.com>
Fri, 21 Nov 2008 01:42:59 +0000 (09:42 +0800)
committerTakashi Iwai <tiwai@suse.de>
Fri, 21 Nov 2008 07:27:30 +0000 (08:27 +0100)
Fix bugs on printing the ELD sample bits.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_eld.c
sound/pci/hda/hda_proc.c

index e848c30d9bf7687efa21eee3964c5fb14a44cc08..9d3e542d74a5ceab71c446ba4d3a232703b61660 100644 (file)
@@ -397,7 +397,7 @@ static void hdmi_show_short_audio_desc(struct cea_sad *a)
        snd_print_pcm_rates(a->rates, buf, sizeof(buf));
 
        if (a->format == AUDIO_CODING_TYPE_LPCM)
-               snd_print_pcm_rates(a->sample_bits, buf2 + 8, sizeof(buf2 - 8));
+               snd_print_pcm_bits(a->sample_bits, buf2 + 8, sizeof(buf2 - 8));
        else if (a->max_bitrate)
                snprintf(buf2, sizeof(buf2),
                                ", max bitrate = %d", a->max_bitrate);
index 31b49bdc58f539f9ada449fad437e5e9cfd72970..56cee3a2221413a4424a1b81a43f601364c36dfb 100644 (file)
@@ -120,7 +120,7 @@ void snd_print_pcm_bits(int pcm, char *buf, int buflen)
        int i, j;
 
        for (i = 0, j = 0; i < ARRAY_SIZE(bits); i++)
-               if (pcm & (1 << i))
+               if (pcm & (AC_SUPPCM_BITS_8 << i))
                        j += snprintf(buf + j, buflen - j,  " %d", bits[i]);
 
        buf[j] = '\0'; /* necessary when j == 0 */
@@ -130,7 +130,6 @@ static void print_pcm_bits(struct snd_info_buffer *buffer, unsigned int pcm)
 {
        char buf[SND_PRINT_BITS_ADVISED_BUFSIZE];
 
-       pcm = (pcm >> 16) & 0xff;
        snd_iprintf(buffer, "    bits [0x%x]:", pcm);
        snd_print_pcm_bits(pcm, buf, sizeof(buf));
        snd_iprintf(buffer, "%s\n", buf);