aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--miscutils/i2c_tools.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/miscutils/i2c_tools.c b/miscutils/i2c_tools.c
index d77e6bacf..c5baaa78e 100644
--- a/miscutils/i2c_tools.c
+++ b/miscutils/i2c_tools.c
@@ -1200,7 +1200,7 @@ int i2cdetect_main(int argc UNUSED_PARAM, char **argv)
opt_F = (1 << 4), opt_l = (1 << 5);
const char *const optstr = "yaqrFl";
- int fd, bus_num, i, j, mode = I2CDETECT_MODE_AUTO, status;
+ int fd, bus_num, i, j, mode = I2CDETECT_MODE_AUTO, status, cmd;
unsigned first = 0x03, last = 0x77, opts;
unsigned long funcs;
@@ -1273,19 +1273,20 @@ int i2cdetect_main(int argc UNUSED_PARAM, char **argv)
for(j = 0; j < 16; j++) {
fflush_all();
+ cmd = mode;
if (mode == I2CDETECT_MODE_AUTO) {
if ((i+j >= 0x30 && i+j <= 0x37) ||
(i+j >= 0x50 && i+j <= 0x5F))
- mode = I2CDETECT_MODE_READ;
+ cmd = I2CDETECT_MODE_READ;
else
- mode = I2CDETECT_MODE_QUICK;
+ cmd = I2CDETECT_MODE_QUICK;
}
/* Skip unwanted addresses. */
if (i+j < first
|| i+j > last
- || (mode == I2CDETECT_MODE_READ && !(funcs & I2C_FUNC_SMBUS_READ_BYTE))
- || (mode == I2CDETECT_MODE_QUICK && !(funcs & I2C_FUNC_SMBUS_QUICK)))
+ || (cmd == I2CDETECT_MODE_READ && !(funcs & I2C_FUNC_SMBUS_READ_BYTE))
+ || (cmd == I2CDETECT_MODE_QUICK && !(funcs & I2C_FUNC_SMBUS_QUICK)))
{
printf(" ");
continue;
@@ -1302,7 +1303,7 @@ int i2cdetect_main(int argc UNUSED_PARAM, char **argv)
"can't set address to 0x%02x", i + j);
}
- switch (mode) {
+ switch (cmd) {
case I2CDETECT_MODE_READ:
/*
* This is known to lock SMBus on various