Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b68b58fd authored by Philby John's avatar Philby John Committed by Takashi Iwai
Browse files

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: default avatarPhilby John <pjohn@mvista.com>
Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 29aac005
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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;