aboutsummaryrefslogtreecommitdiffstats
path: root/sound/arm
diff options
context:
space:
mode:
Diffstat (limited to 'sound/arm')
-rw-r--r--sound/arm/aaci.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index a148e275c80f..d0cead38d5fb 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -50,7 +50,11 @@ static void aaci_ac97_select_codec(struct aaci *aaci, struct snd_ac97 *ac97)
50 if (v & SLFR_1RXV) 50 if (v & SLFR_1RXV)
51 readl(aaci->base + AACI_SL1RX); 51 readl(aaci->base + AACI_SL1RX);
52 52
53 writel(maincr, aaci->base + AACI_MAINCR); 53 if (maincr != readl(aaci->base + AACI_MAINCR)) {
54 writel(maincr, aaci->base + AACI_MAINCR);
55 readl(aaci->base + AACI_MAINCR);
56 udelay(1);
57 }
54} 58}
55 59
56/* 60/*
@@ -966,6 +970,8 @@ static unsigned int __devinit aaci_size_fifo(struct aaci *aaci)
966 * disabling the channel doesn't clear the FIFO. 970 * disabling the channel doesn't clear the FIFO.
967 */ 971 */
968 writel(aaci->maincr & ~MAINCR_IE, aaci->base + AACI_MAINCR); 972 writel(aaci->maincr & ~MAINCR_IE, aaci->base + AACI_MAINCR);
973 readl(aaci->base + AACI_MAINCR);
974 udelay(1);
969 writel(aaci->maincr, aaci->base + AACI_MAINCR); 975 writel(aaci->maincr, aaci->base + AACI_MAINCR);
970 976
971 /* 977 /*
@@ -978,7 +984,8 @@ static unsigned int __devinit aaci_size_fifo(struct aaci *aaci)
978 return i; 984 return i;
979} 985}
980 986
981static int __devinit aaci_probe(struct amba_device *dev, struct amba_id *id) 987static int __devinit aaci_probe(struct amba_device *dev,
988 const struct amba_id *id)
982{ 989{
983 struct aaci *aaci; 990 struct aaci *aaci;
984 int ret, i; 991 int ret, i;