Commit 63232dcd authored by Stelian Pop's avatar Stelian Pop Committed by Jean Delvare

hwmon/ams: Fix I2C read retry logic

Fix sleep and retry logic in ams-i2c.
Signed-off-by: default avatarStelian Pop <stelian@popies.net>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent 2d8dd65f
...@@ -85,17 +85,17 @@ static int ams_i2c_write(u8 reg, u8 value) ...@@ -85,17 +85,17 @@ static int ams_i2c_write(u8 reg, u8 value)
static int ams_i2c_cmd(enum ams_i2c_cmd cmd) static int ams_i2c_cmd(enum ams_i2c_cmd cmd)
{ {
s32 result; s32 result;
int remaining = HZ / 20; int count = 3;
ams_i2c_write(AMS_COMMAND, cmd); ams_i2c_write(AMS_COMMAND, cmd);
mdelay(5); msleep(5);
while (remaining) { while (count--) {
result = ams_i2c_read(AMS_COMMAND); result = ams_i2c_read(AMS_COMMAND);
if (result == 0 || result & 0x80) if (result == 0 || result & 0x80)
return 0; return 0;
remaining = schedule_timeout(remaining); schedule_timeout_uninterruptible(HZ / 20);
} }
return -1; return -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment