Skip to content

Commit

Permalink
ALSA: aaci - Fix alignment faults on ARM Cortex introduced by commit 2…
Browse files Browse the repository at this point in the history
…9a4f2d

The commit 29a4f2d 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 <[email protected]>
Acked-by: Russell King <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
Philby John authored and tiwai committed Apr 13, 2010
1 parent 29aac00 commit b68b58f
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions sound/arm/aaci.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit b68b58f

Please sign in to comment.