diff options
author | Stelian Pop <stelian@popies.net> | 2007-05-08 17:22:02 +0200 |
---|---|---|
committer | Jean Delvare <khali@hyperion.delvare> | 2007-05-08 17:22:02 +0200 |
commit | 63232dcd555d60d70ce8e09b53c8ef8e4a49a3f9 (patch) | |
tree | 75ee7e9fb6cc8e18ad129cbea8fdfba467c21251 | |
parent | 2d8dd65fc14287f2c004dd755e517ba0f45d446e (diff) | |
download | op-kernel-dev-63232dcd555d60d70ce8e09b53c8ef8e4a49a3f9.zip op-kernel-dev-63232dcd555d60d70ce8e09b53c8ef8e4a49a3f9.tar.gz |
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>
-rw-r--r-- | drivers/hwmon/ams/ams-i2c.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/hwmon/ams/ams-i2c.c b/drivers/hwmon/ams/ams-i2c.c index 485d333..5c70f2e 100644 --- a/drivers/hwmon/ams/ams-i2c.c +++ b/drivers/hwmon/ams/ams-i2c.c @@ -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; |