mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
ASoC: au1x: psc-ac97: verify correct codec register was read
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>
This commit is contained in:
parent
d8707cecdf
commit
e697cd410a
1 changed files with 8 additions and 3 deletions
|
@ -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();
|
||||
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue