[ALSA] hda_intel prefer 24bit instead of 20bit
authorNicolas Graziano <nicolas.graziano@wanadoo.fr>
Tue, 19 Sep 2006 12:23:14 +0000 (14:23 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sat, 23 Sep 2006 08:47:33 +0000 (10:47 +0200)
If I understand the hda_intel code, for format > 20bit it only advertise
the SNDRV_PCM_FMTBIT_S32_LE format and play it at 32 bit, 20 bit or 24 bit.
But if the 20bit and 24bit are available, actually it prefer the 20bit
format. This path is to prefer the 24bit format instead of 20bit.

Signed-off-by: Nicolas Graziano <nicolas.graziano@wanadoo.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
sound/pci/hda/hda_codec.c

index e69db04..8b2c080 100644 (file)
@@ -1505,10 +1505,10 @@ int snd_hda_query_supported_pcm(struct hda_codec *codec, hda_nid_t nid,
                                formats |= SNDRV_PCM_FMTBIT_S32_LE;
                                if (val & AC_SUPPCM_BITS_32)
                                        bps = 32;
-                               else if (val & AC_SUPPCM_BITS_20)
-                                       bps = 20;
                                else if (val & AC_SUPPCM_BITS_24)
                                        bps = 24;
+                               else if (val & AC_SUPPCM_BITS_20)
+                                       bps = 20;
                        }
                }
                else if (streams == AC_SUPFMT_FLOAT32) { /* should be exclusive */