ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read()
[ Upstream commit123af9043e
] The loop timeout doesn't work because it's a post op and ends with "tmo" set to -1. I changed it from a post-op to a pre-op and I changed the initial the starting value from 5 to 6 so we still iterate 5 times. I left the other as it was because it's a large number. Fixes:b3c70c9ea6
("ASoC: Alchemy AC97C/I2SC audio support") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
d3222cfc0b
Коммит
3f3017fa15
|
@ -91,8 +91,8 @@ static unsigned short au1xac97c_ac97_read(struct snd_ac97 *ac97,
|
|||
do {
|
||||
mutex_lock(&ctx->lock);
|
||||
|
||||
tmo = 5;
|
||||
while ((RD(ctx, AC97_STATUS) & STAT_CP) && tmo--)
|
||||
tmo = 6;
|
||||
while ((RD(ctx, AC97_STATUS) & STAT_CP) && --tmo)
|
||||
udelay(21); /* wait an ac97 frame time */
|
||||
if (!tmo) {
|
||||
pr_debug("ac97rd timeout #1\n");
|
||||
|
@ -105,7 +105,7 @@ static unsigned short au1xac97c_ac97_read(struct snd_ac97 *ac97,
|
|||
* poll, Forrest, poll...
|
||||
*/
|
||||
tmo = 0x10000;
|
||||
while ((RD(ctx, AC97_STATUS) & STAT_CP) && tmo--)
|
||||
while ((RD(ctx, AC97_STATUS) & STAT_CP) && --tmo)
|
||||
asm volatile ("nop");
|
||||
data = RD(ctx, AC97_CMDRESP);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче