diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2007-09-17 09:40:24 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2007-10-16 16:50:34 +0200 |
commit | 0f28eca32b3064db29d4718156e692f4db75c7aa (patch) | |
tree | f5342c37d9062f1b3a66cff63b0820c3ce851146 | |
parent | [ALSA] cmipci: reorganize set_dac_channels() (diff) | |
download | linux-0f28eca32b3064db29d4718156e692f4db75c7aa.tar.xz linux-0f28eca32b3064db29d4718156e692f4db75c7aa.zip |
[ALSA] cmipci: fix lookup of double rates
When using one of the double sampling rates, use half the sample rate to
look up in the rates[] table, otherwise we stumble over the BUG().
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r-- | sound/pci/cmipci.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index b4f74ae9c0b6..7cf4fc193419 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c @@ -604,6 +604,9 @@ static unsigned int rates[] = { 5512, 11025, 22050, 44100, 8000, 16000, 32000, 4 static unsigned int snd_cmipci_rate_freq(unsigned int rate) { unsigned int i; + + if (rate > 48000) + rate /= 2; for (i = 0; i < ARRAY_SIZE(rates); i++) { if (rates[i] == rate) return i; |