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 <pjohn@mvista.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
29aac005ff
commit
b68b58fd6a
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue