hwmon/ams: Fix I2C read retry logic
Fix sleep and retry logic in ams-i2c. Signed-off-by: Stelian Pop <stelian@popies.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
Родитель
2d8dd65fc1
Коммит
63232dcd55
|
@ -85,17 +85,17 @@ static int ams_i2c_write(u8 reg, u8 value)
|
|||
static int ams_i2c_cmd(enum ams_i2c_cmd cmd)
|
||||
{
|
||||
s32 result;
|
||||
int remaining = HZ / 20;
|
||||
int count = 3;
|
||||
|
||||
ams_i2c_write(AMS_COMMAND, cmd);
|
||||
mdelay(5);
|
||||
msleep(5);
|
||||
|
||||
while (remaining) {
|
||||
while (count--) {
|
||||
result = ams_i2c_read(AMS_COMMAND);
|
||||
if (result == 0 || result & 0x80)
|
||||
return 0;
|
||||
|
||||
remaining = schedule_timeout(remaining);
|
||||
schedule_timeout_uninterruptible(HZ / 20);
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче