aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/lm90.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2011-11-04 07:00:46 -0400
committerJean Delvare <khali@endymion.delvare>2011-11-04 07:00:46 -0400
commit8dc089d68b125179b1c97e75d29623472d99c68b (patch)
treeaf66b5e66831edf483b56899873ba90283818a46 /drivers/hwmon/lm90.c
parentda8ebe4e09ee5661f125a8401ade58baf226aa57 (diff)
hwmon: (lm90) Fix warnings
With some configuration option combinations, we get the following warnings: drivers/hwmon/lm90.c: In function 'lm90_detect': drivers/hwmon/lm90.c:1114: warning: 'chip_id' may be used uninitialized in this function drivers/hwmon/lm90.c:1114: warning: 'reg_config1' may be used uninitialized in this function drivers/hwmon/lm90.c:1114: warning: 'reg_convrate' may be used uninitialized in this function drivers/hwmon/lm90.c:1187: warning: 'reg_emerg2' may be used uninitialized in this function drivers/hwmon/lm90.c:1187: warning: 'reg_status2' may be used uninitialized in this function We can solve these easily by reading the register values first and checking for errors later. These errors should be very rare, even in the case of failed detection, so this change has no impact on performance. And this makes checkpatch.pl happier. Reported-by: Guenter Roeck <guenter.roeck@ericsson.com> Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
Diffstat (limited to 'drivers/hwmon/lm90.c')
-rw-r--r--drivers/hwmon/lm90.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
index 90ddb8774210..60b3e3030277 100644
--- a/drivers/hwmon/lm90.c
+++ b/drivers/hwmon/lm90.c
@@ -1117,14 +1117,12 @@ static int lm90_detect(struct i2c_client *new_client,
1117 return -ENODEV; 1117 return -ENODEV;
1118 1118
1119 /* detection and identification */ 1119 /* detection and identification */
1120 if ((man_id = i2c_smbus_read_byte_data(new_client, 1120 man_id = i2c_smbus_read_byte_data(new_client, LM90_REG_R_MAN_ID);
1121 LM90_REG_R_MAN_ID)) < 0 1121 chip_id = i2c_smbus_read_byte_data(new_client, LM90_REG_R_CHIP_ID);
1122 || (chip_id = i2c_smbus_read_byte_data(new_client, 1122 reg_config1 = i2c_smbus_read_byte_data(new_client, LM90_REG_R_CONFIG1);
1123 LM90_REG_R_CHIP_ID)) < 0 1123 reg_convrate = i2c_smbus_read_byte_data(new_client,
1124 || (reg_config1 = i2c_smbus_read_byte_data(new_client, 1124 LM90_REG_R_CONVRATE);
1125 LM90_REG_R_CONFIG1)) < 0 1125 if (man_id < 0 || chip_id < 0 || reg_config1 < 0 || reg_convrate < 0)
1126 || (reg_convrate = i2c_smbus_read_byte_data(new_client,
1127 LM90_REG_R_CONVRATE)) < 0)
1128 return -ENODEV; 1126 return -ENODEV;
1129 1127
1130 if (man_id == 0x01 || man_id == 0x5C || man_id == 0x41) { 1128 if (man_id == 0x01 || man_id == 0x5C || man_id == 0x41) {
@@ -1192,13 +1190,16 @@ static int lm90_detect(struct i2c_client *new_client,
1192 * exists, both readings will reflect the same value. Otherwise, 1190 * exists, both readings will reflect the same value. Otherwise,
1193 * the readings will be different. 1191 * the readings will be different.
1194 */ 1192 */
1195 if ((reg_emerg = i2c_smbus_read_byte_data(new_client, 1193 reg_emerg = i2c_smbus_read_byte_data(new_client,
1196 MAX6659_REG_R_REMOTE_EMERG)) < 0 1194 MAX6659_REG_R_REMOTE_EMERG);
1197 || i2c_smbus_read_byte_data(new_client, LM90_REG_R_MAN_ID) < 0 1195 man_id = i2c_smbus_read_byte_data(new_client,
1198 || (reg_emerg2 = i2c_smbus_read_byte_data(new_client, 1196 LM90_REG_R_MAN_ID);
1199 MAX6659_REG_R_REMOTE_EMERG)) < 0 1197 reg_emerg2 = i2c_smbus_read_byte_data(new_client,
1200 || (reg_status2 = i2c_smbus_read_byte_data(new_client, 1198 MAX6659_REG_R_REMOTE_EMERG);
1201 MAX6696_REG_R_STATUS2)) < 0) 1199 reg_status2 = i2c_smbus_read_byte_data(new_client,
1200 MAX6696_REG_R_STATUS2);
1201 if (reg_emerg < 0 || man_id < 0 || reg_emerg2 < 0
1202 || reg_status2 < 0)
1202 return -ENODEV; 1203 return -ENODEV;
1203 1204
1204 /* 1205 /*