[alsa-devel] [PATCH 1/2] ASoC: Fix mpc5200-psc-ac97 to ensure the data ready bit is cleared

Jon Smirl jonsmirl at gmail.com
Thu Jul 2 21:06:17 CEST 2009


On Thu, Jul 2, 2009 at 1:57 PM, Grant Likely<grant.likely at secretlab.ca> wrote:
> From: Grant Likely <grant.likely at secretlab.ca>
>
> 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 at secretlab.ca>

Acked-by: Jon Smirl <jonsmirl at gmail.com>

> ---
>
>  sound/soc/fsl/mpc5200_psc_ac97.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
>
> diff --git a/sound/soc/fsl/mpc5200_psc_ac97.c b/sound/soc/fsl/mpc5200_psc_ac97.c
> index 794a247..9b8503f 100644
> --- a/sound/soc/fsl/mpc5200_psc_ac97.c
> +++ b/sound/soc/fsl/mpc5200_psc_ac97.c
> @@ -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));
>
>
>



-- 
Jon Smirl
jonsmirl at gmail.com


More information about the Alsa-devel mailing list