aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2006-02-01 14:25:58 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-02-01 14:25:58 -0500
commitf27f218cdfb12c9d2b285ec4a0bce588b5c531d3 (patch)
tree38e2663bb2cfe2f4af663b837288d6d6b069bafb
parenta6df590dd8b7644c8e298e3b13442bcd6ceeb739 (diff)
[ARM] 3290/1: Fix the FIFO size detection
Patch from Catalin Marinas AACI reports TX FIFO full after the first write to it if the AC97 is not enabled. This patch enables the AC97 probing before the check for the TX FIFO size. The patch also adds a warning if the TX FIFO size is not multiple of 16. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--sound/arm/aaci.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index 54147c1f6361..149feb410654 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -882,14 +882,20 @@ static int __devinit aaci_probe(struct amba_device *dev, void *id)
882 writel(0x1fff, aaci->base + AACI_INTCLR); 882 writel(0x1fff, aaci->base + AACI_INTCLR);
883 writel(aaci->maincr, aaci->base + AACI_MAINCR); 883 writel(aaci->maincr, aaci->base + AACI_MAINCR);
884 884
885 ret = aaci_probe_ac97(aaci);
886 if (ret)
887 goto out;
888
885 /* 889 /*
886 * Size the FIFOs. 890 * Size the FIFOs (must be multiple of 16).
887 */ 891 */
888 aaci->fifosize = aaci_size_fifo(aaci); 892 aaci->fifosize = aaci_size_fifo(aaci);
889 893 if (aaci->fifosize & 15) {
890 ret = aaci_probe_ac97(aaci); 894 printk(KERN_WARNING "AACI: fifosize = %d not supported\n",
891 if (ret) 895 aaci->fifosize);
896 ret = -ENODEV;
892 goto out; 897 goto out;
898 }
893 899
894 ret = aaci_init_pcm(aaci); 900 ret = aaci_init_pcm(aaci);
895 if (ret) 901 if (ret)