hwmon: (lm73) Fix lower and upper temperature limits
authorGuenter Roeck <linux@roeck-us.net>
Fri, 11 Jan 2013 05:16:47 +0000 (21:16 -0800)
committerGuenter Roeck <linux@roeck-us.net>
Wed, 6 Feb 2013 17:57:57 +0000 (09:57 -0800)
While the LM73 is only specified for temperatures from -40 to +150 degrees C,
its power-up minimum and maximum temperature limits are -256 and +255.75
degrees C. For better consistency and to avoid confusion, clamp limits to
the power-up limits and not to -40 / +150 degrees C.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/lm73.c

index 5166a8e..dad83fe 100644 (file)
@@ -36,8 +36,8 @@ static const unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4c,
 
 #define LM73_ID                        0x9001  /* 0x0190, byte-swapped */
 #define DRVNAME                        "lm73"
-#define LM73_TEMP_MIN          (-40)
-#define LM73_TEMP_MAX          150
+#define LM73_TEMP_MIN          (-256000 / 250)
+#define LM73_TEMP_MAX          (255750 / 250)
 
 /*-----------------------------------------------------------------------*/
 
@@ -56,8 +56,7 @@ static ssize_t set_temp(struct device *dev, struct device_attribute *da,
                return status;
 
        /* Write value */
-       value = (short) clamp_val(temp / 250, LM73_TEMP_MIN * 4,
-                                 LM73_TEMP_MAX * 4) << 5;
+       value = clamp_val(temp / 250, LM73_TEMP_MIN, LM73_TEMP_MAX) << 5;
        err = i2c_smbus_write_word_swapped(client, attr->index, value);
        return (err < 0) ? err : count;
 }