mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
[ALSA] hda-codec - Add support of 96kHz back
Added the support of 96kHz sample rate back. Although the rate isn't listed in the ACC_PAR_PCM bits but si3054 codecs do support this rate explicitly. Now fixed the deteciton code not to check this extra bit. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
bc9f98a981
commit
a961f9fe8c
@ -1368,6 +1368,11 @@ static struct hda_rate_tbl rate_bits[] = {
|
||||
{ 96000, SNDRV_PCM_RATE_96000, 0x0800 }, /* 2 x 48 */
|
||||
{ 176400, SNDRV_PCM_RATE_176400, 0x5800 },/* 4 x 44 */
|
||||
{ 192000, SNDRV_PCM_RATE_192000, 0x1800 }, /* 4 x 48 */
|
||||
#define AC_PAR_PCM_RATE_BITS 11
|
||||
/* up to bits 10, 384kHZ isn't supported properly */
|
||||
|
||||
/* not autodetected value */
|
||||
{ 9600, SNDRV_PCM_RATE_KNOT, 0x0400 }, /* 1/5 x 48 */
|
||||
|
||||
{ 0 } /* terminator */
|
||||
};
|
||||
@ -1461,7 +1466,7 @@ int snd_hda_query_supported_pcm(struct hda_codec *codec, hda_nid_t nid,
|
||||
|
||||
if (ratesp) {
|
||||
u32 rates = 0;
|
||||
for (i = 0; rate_bits[i].hz; i++) {
|
||||
for (i = 0; i < AC_PAR_PCM_RATE_BITS; i++) {
|
||||
if (val & (1 << i))
|
||||
rates |= rate_bits[i].alsa_bits;
|
||||
}
|
||||
@ -1555,13 +1560,13 @@ int snd_hda_is_supported_format(struct hda_codec *codec, hda_nid_t nid,
|
||||
}
|
||||
|
||||
rate = format & 0xff00;
|
||||
for (i = 0; rate_bits[i].hz; i++)
|
||||
for (i = 0; i < AC_PAR_PCM_RATE_BITS; i++)
|
||||
if (rate_bits[i].hda_fmt == rate) {
|
||||
if (val & (1 << i))
|
||||
break;
|
||||
return 0;
|
||||
}
|
||||
if (! rate_bits[i].hz)
|
||||
if (i >= AC_PAR_PCM_RATE_BITS)
|
||||
return 0;
|
||||
|
||||
stream = snd_hda_param_read(codec, nid, AC_PAR_STREAM);
|
||||
|
Loading…
Reference in New Issue
Block a user