ASoC: Fix mpc5200-psc-ac97 to ensure the data ready bit is cleared
When doing register reads, it is possible for there to be a stale data ready bit set which will cause subsequent reads to return prematurely with incorrect data. This patch fixes the issues by ensuring stale data is cleared before starting another transaction. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Jon Smirl <jonsmirl@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
1df892cba4
commit
07573534b0
|
@ -41,6 +41,10 @@ static unsigned short psc_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
|
|||
pr_err("timeout on ac97 bus (rdy)\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* Force clear the data valid bit */
|
||||
in_be32(&psc_dma->psc_regs->ac97_data);
|
||||
|
||||
/* Send the read */
|
||||
out_be32(&psc_dma->psc_regs->ac97_cmd, (1<<31) | ((reg & 0x7f) << 24));
|
||||
|
||||
|
|
Loading…
Reference in New Issue