hwmon: (lm95241) Use more accurate limits
authorGuenter Roeck <linux@roeck-us.net>
Mon, 4 Jul 2016 15:27:38 +0000 (08:27 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Fri, 9 Sep 2016 04:34:14 +0000 (21:34 -0700)
The lower temperature limit is -128 degrees C. The supported upper limits
are 127.875 or 255.875 degrees C. Also, don't fail if a value outside
the supported range is provided when setting a temperature limit.
Instead, clamp the provided value to the available value range.

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

index df94f486b21c5c3ef35650eb861808b0f5c31fca..3d96c3fcba9b14e40b7f641eedd9184d4b76a4fc 100644 (file)
@@ -205,7 +205,7 @@ static ssize_t show_min(struct device *dev, struct device_attribute *attr,
 
        return snprintf(buf, PAGE_SIZE - 1,
                        data->config & to_sensor_dev_attr(attr)->index ?
-                       "-127000\n" : "0\n");
+                       "-128000\n" : "0\n");
 }
 
 static ssize_t set_min(struct device *dev, struct device_attribute *attr,
@@ -216,8 +216,6 @@ static ssize_t set_min(struct device *dev, struct device_attribute *attr,
 
        if (kstrtol(buf, 10, &val) < 0)
                return -EINVAL;
-       if (val < -128000)
-               return -EINVAL;
 
        mutex_lock(&data->update_lock);
 
@@ -242,7 +240,7 @@ static ssize_t show_max(struct device *dev, struct device_attribute *attr,
 
        return snprintf(buf, PAGE_SIZE - 1,
                        data->config & to_sensor_dev_attr(attr)->index ?
-                       "127000\n" : "255000\n");
+                       "127875\n" : "255875\n");
 }
 
 static ssize_t set_max(struct device *dev, struct device_attribute *attr,
@@ -253,8 +251,6 @@ static ssize_t set_max(struct device *dev, struct device_attribute *attr,
 
        if (kstrtol(buf, 10, &val) < 0)
                return -EINVAL;
-       if (val >= 256000)
-               return -EINVAL;
 
        mutex_lock(&data->update_lock);