From: Philby John Date: Fri, 26 Mar 2010 16:07:51 +0000 (+0530) Subject: ALSA: aaci - Fix alignment faults on ARM Cortex introduced by commit 29a4f2d3 X-Git-Tag: v2.6.34-rc5~12^2~1^2 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=b68b58fd6a341c2115ff5fb466fe9fc0b581980e;p=~shefty%2Frdma-dev.git ALSA: aaci - Fix alignment faults on ARM Cortex introduced by commit 29a4f2d3 The commit 29a4f2d3 used writel() at offset 0x26 which is half-word aligned causing unaligned exceptions on a Cortex-A8. The original patch solved the "aaci-pl041 fpga:04: ac97 read back fail" issue on a soft reset. Reading from any arbitrary aaci register seems to solve this issue. Signed-off-by: Philby John Acked-by: Russell King Signed-off-by: Takashi Iwai --- diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c index 656e474dca4..91acc9a243e 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c @@ -863,7 +863,6 @@ static int __devinit aaci_probe_ac97(struct aaci *aaci) struct snd_ac97 *ac97; int ret; - writel(0, aaci->base + AC97_POWERDOWN); /* * Assert AACIRESET for 2us */ @@ -1047,7 +1046,11 @@ static int __devinit aaci_probe(struct amba_device *dev, struct amba_id *id) writel(0x1fff, aaci->base + AACI_INTCLR); writel(aaci->maincr, aaci->base + AACI_MAINCR); - + /* + * Fix: ac97 read back fail errors by reading + * from any arbitrary aaci register. + */ + readl(aaci->base + AACI_CSCH1); ret = aaci_probe_ac97(aaci); if (ret) goto out;