diff options
Diffstat (limited to 'sound/arm/aaci.c')
-rw-r--r-- | sound/arm/aaci.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c index 5e9a81ab990b..149feb410654 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c @@ -17,11 +17,11 @@ #include <linux/spinlock.h> #include <linux/interrupt.h> #include <linux/err.h> +#include <linux/amba/bus.h> #include <asm/io.h> #include <asm/irq.h> #include <asm/sizes.h> -#include <asm/hardware/amba.h> #include <sound/driver.h> #include <sound/core.h> @@ -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) |