[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 e69db04b7eb8fb2dc10bfc6883233219ba698a50..8b2c080c85aed07d3c730683fda1d402f582bb91 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 */