|
@@ -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;
|