Skip to content

Commit

Permalink
ASoC: au1x: psc-ac97: verify correct codec register was read
Browse files Browse the repository at this point in the history
Verify that the correct register has been received from the codec.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Manuel Lauss authored and Mark Brown committed Oct 19, 2009
1 parent d8707ce commit e697cd4
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions sound/soc/au1x/psc-ac97.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ static unsigned short au1xpsc_ac97_read(struct snd_ac97 *ac97,
{
/* FIXME */
struct au1xpsc_audio_data *pscdata = au1xpsc_ac97_workdata;
unsigned short data, retry, tmo;
unsigned short retry, tmo;
unsigned long data;

au_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata));
au_sync();
Expand All @@ -79,15 +80,19 @@ static unsigned short au1xpsc_ac97_read(struct snd_ac97 *ac97,
&& --tmo)
udelay(2);

data = au_readl(AC97_CDC(pscdata)) & 0xffff;
data = au_readl(AC97_CDC(pscdata));

au_writel(PSC_AC97EVNT_CD, AC97_EVNT(pscdata));
au_sync();

mutex_unlock(&pscdata->lock);

if (reg != ((data >> 16) & 0x7f))
tmo = 1; /* wrong register, try again */

} while (--retry && !tmo);

return retry ? data : 0xffff;
return retry ? data & 0xffff : 0xffff;
}

/* AC97 controller writes to codec register */
Expand Down

0 comments on commit e697cd4

Please sign in to comment.