]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - sound/arm/aaci.c
[ALSA] Remove spinlocks around proc prints
[linux-2.6-omap-h63xx.git] / sound / arm / aaci.c
index 54147c1f6361d67d85db502737830e8da461e86a..5f22d70fefc0fa114a7f9b12814f8c7a6b31b41e 100644 (file)
@@ -73,7 +73,7 @@ static void aaci_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned
        if (ac97->num >= 4)
                return;
 
-       down(&aaci->ac97_sem);
+       mutex_lock(&aaci->ac97_sem);
 
        aaci_ac97_select_codec(aaci, ac97);
 
@@ -91,7 +91,7 @@ static void aaci_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned
                v = readl(aaci->base + AACI_SLFR);
        } while (v & (SLFR_1TXB|SLFR_2TXB));
 
-       up(&aaci->ac97_sem);
+       mutex_unlock(&aaci->ac97_sem);
 }
 
 /*
@@ -105,7 +105,7 @@ static unsigned short aaci_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
        if (ac97->num >= 4)
                return ~0;
 
-       down(&aaci->ac97_sem);
+       mutex_lock(&aaci->ac97_sem);
 
        aaci_ac97_select_codec(aaci, ac97);
 
@@ -145,7 +145,7 @@ static unsigned short aaci_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
                v = ~0;
        }
 
-       up(&aaci->ac97_sem);
+       mutex_unlock(&aaci->ac97_sem);
        return v;
 }
 
@@ -783,7 +783,7 @@ static struct aaci * __devinit aaci_init_card(struct amba_device *dev)
                 card->shortname, dev->res.start, dev->irq[0]);
 
        aaci = card->private_data;
-       init_MUTEX(&aaci->ac97_sem);
+       mutex_init(&aaci->ac97_sem);
        spin_lock_init(&aaci->lock);
        aaci->card = card;
        aaci->dev = dev;
@@ -882,14 +882,20 @@ static int __devinit aaci_probe(struct amba_device *dev, void *id)
        writel(0x1fff, aaci->base + AACI_INTCLR);
        writel(aaci->maincr, aaci->base + AACI_MAINCR);
 
+       ret = aaci_probe_ac97(aaci);
+       if (ret)
+               goto out;
+
        /*
-        * Size the FIFOs.
+        * Size the FIFOs (must be multiple of 16).
         */
        aaci->fifosize = aaci_size_fifo(aaci);
-
-       ret = aaci_probe_ac97(aaci);
-       if (ret)
+       if (aaci->fifosize & 15) {
+               printk(KERN_WARNING "AACI: fifosize = %d not supported\n",
+                      aaci->fifosize);
+               ret = -ENODEV;
                goto out;
+       }
 
        ret = aaci_init_pcm(aaci);
        if (ret)