ALSA: aaci: ARM1176 aaci-pl041 AC97 register read timeout
authorPhilby John <pjohn@in.mvista.com>
Tue, 13 Oct 2009 11:00:22 +0000 (16:30 +0530)
committerTakashi Iwai <tiwai@suse.de>
Tue, 13 Oct 2009 13:59:55 +0000 (15:59 +0200)
After a reboot on an ARM1176 which amounts to a softreset, it has been
noted that the ALSA driver does not get registered and the probe fails
with the error "aaci-pl041 fpga:04: ac97 read back fail". In the process
of reading from a register the SL1TxBusy bit is set indicating that the
transceiver is busy and remains so until the default timeout occurs.
Set the Power down register 0x26 to an arbitrary value as specified in
the PL041 manual (page: 3-18) so that AACISL1TX/AACISL2TX registers take
their default state.

Signed-off-by: Philby John <pjohn@in.mvista.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/arm/aaci.c

index dc78272fc39ff2cb01a42e5206d16041987e5d98..1f0f8213e2d5dde34a11e220d3fff44c3b70120b 100644 (file)
@@ -937,6 +937,7 @@ 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
         */