From 4da4861017c23728bcf830054bd40aeeae1fb48b Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Mon, 8 Aug 2005 19:09:32 +0000 Subject: [PATCH] Properly handle short i2c block reads. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3048 7894878c-1315-0410-8ee3-d5d059ff63e0 --- prog/dump/i2cdump.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/prog/dump/i2cdump.c b/prog/dump/i2cdump.c index 9615792d..b5a3c0d5 100644 --- a/prog/dump/i2cdump.c +++ b/prog/dump/i2cdump.c @@ -62,7 +62,7 @@ void help(void) int main(int argc, char *argv[]) { char *end; - int i, j, res, res2, i2cbus, address, size, file; + int i, j, res, i2cbus, address, size, file; int bank = 0, bankreg = 0x4E; char filename[20]; long funcs; @@ -361,13 +361,11 @@ int main(int argc, char *argv[]) cblock); } else { #if USE_I2C_BLOCK - res = 0; - for (i = 0; i < 256; i+=32) { - res2 = i2c_smbus_read_i2c_block_data(file, - i, cblock+i); - if (res2 <= 0) + for (res = 0; res < 256; res += i) { + i = i2c_smbus_read_i2c_block_data(file, + res, cblock + res); + if (i <= 0) break; - res += res2; } #else fprintf(stderr, "Error: I2C block read "