From 1cde5f79d4c077cd6a2a8998a9180dfcc2800852 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Tue, 27 Oct 2015 17:15:02 +0100 Subject: [PATCH] i2cdump: don't read block data in non-block modes We currently read data twice in byte mode. Add a check to avoid calling i2c_smbus_read_i2c_block_data() if we're not in I2C or SMBus block mode. Signed-off-by: Bartosz Golaszewski Signed-off-by: Denys Vlasenko --- miscutils/i2c_tools.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/miscutils/i2c_tools.c b/miscutils/i2c_tools.c index 907d738fd..094bf9e38 100644 --- a/miscutils/i2c_tools.c +++ b/miscutils/i2c_tools.c @@ -971,7 +971,8 @@ int i2cdump_main(int argc UNUSED_PARAM, char **argv) /* All but word data. */ if (mode != I2C_SMBUS_WORD_DATA || even) { - blen = read_block_data(fd, mode, block); + if (mode == I2C_SMBUS_BLOCK_DATA || mode == I2C_SMBUS_I2C_BLOCK_DATA) + blen = read_block_data(fd, mode, block); if (mode == I2C_SMBUS_BYTE) { res = i2c_smbus_write_byte(fd, first); -- 2.25.1