]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/hwmon/lm75.c
[MIPS] TXx9: cleanup and fix some sparse warnings
[linux-2.6-omap-h63xx.git] / drivers / hwmon / lm75.c
index 115f4090b98e3c94cab67e058a7e1676e9b3546c..de698dc73020ccdf7edf88d8697fa1740c49c67b 100644 (file)
@@ -248,18 +248,18 @@ static int lm75_detach_client(struct i2c_client *client)
 
 /* All registers are word-sized, except for the configuration register.
    LM75 uses a high-byte first convention, which is exactly opposite to
-   the usual practice. */
+   the SMBus standard. */
 static int lm75_read_value(struct i2c_client *client, u8 reg)
 {
+       int value;
+
        if (reg == LM75_REG_CONF)
                return i2c_smbus_read_byte_data(client, reg);
-       else
-               return swab16(i2c_smbus_read_word_data(client, reg));
+
+       value = i2c_smbus_read_word_data(client, reg);
+       return (value < 0) ? value : swab16(value);
 }
 
-/* All registers are word-sized, except for the configuration register.
-   LM75 uses a high-byte first convention, which is exactly opposite to
-   the usual practice. */
 static int lm75_write_value(struct i2c_client *client, u8 reg, u16 value)
 {
        if (reg == LM75_REG_CONF)
@@ -290,9 +290,16 @@ static struct lm75_data *lm75_update_device(struct device *dev)
                int i;
                dev_dbg(&client->dev, "Starting lm75 update\n");
 
-               for (i = 0; i < ARRAY_SIZE(data->temp); i++)
-                       data->temp[i] = lm75_read_value(client,
-                                                       LM75_REG_TEMP[i]);
+               for (i = 0; i < ARRAY_SIZE(data->temp); i++) {
+                       int status;
+
+                       status = lm75_read_value(client, LM75_REG_TEMP[i]);
+                       if (status < 0)
+                               dev_dbg(&client->dev, "reg %d, err %d\n",
+                                               LM75_REG_TEMP[i], status);
+                       else
+                               data->temp[i] = status;
+               }
                data->last_updated = jiffies;
                data->valid = 1;
        }