summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2007-09-17 09:40:24 +0200
committerJaroslav Kysela <perex@perex.cz>2007-10-16 16:50:34 +0200
commit0f28eca32b3064db29d4718156e692f4db75c7aa (patch)
treef5342c37d9062f1b3a66cff63b0820c3ce851146
parent[ALSA] cmipci: reorganize set_dac_channels() (diff)
downloadlinux-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.c3
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;