| From foo@baz Thu May 24 11:23:00 CEST 2018 |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| Date: Mon, 15 Jan 2018 11:08:38 +0300 |
| Subject: ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read() |
| |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| |
| [ Upstream commit 123af9043e93cb6f235207d260d50f832cdb5439 ] |
| |
| 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: b3c70c9ea62a ("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> |
| --- |
| sound/soc/au1x/ac97c.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/sound/soc/au1x/ac97c.c |
| +++ b/sound/soc/au1x/ac97c.c |
| @@ -91,8 +91,8 @@ static unsigned short au1xac97c_ac97_rea |
| 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_rea |
| * 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); |
| |