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 <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Bartosz Golaszewski 2015-10-27 17:15:02 +01:00 committed by Denys Vlasenko
parent fc8eb056ea
commit 1cde5f79d4

View File

@ -971,7 +971,8 @@ int i2cdump_main(int argc UNUSED_PARAM, char **argv)
/* All but word data. */ /* All but word data. */
if (mode != I2C_SMBUS_WORD_DATA || even) { 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) { if (mode == I2C_SMBUS_BYTE) {
res = i2c_smbus_write_byte(fd, first); res = i2c_smbus_write_byte(fd, first);