Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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;