Commit 637ab157 authored by Guenter Roeck's avatar Guenter Roeck

hwmon: (lm95241) Use more accurate limits

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: default avatarGuenter Roeck <linux@roeck-us.net>
parent e8172a93
...@@ -205,7 +205,7 @@ static ssize_t show_min(struct device *dev, struct device_attribute *attr, ...@@ -205,7 +205,7 @@ static ssize_t show_min(struct device *dev, struct device_attribute *attr,
return snprintf(buf, PAGE_SIZE - 1, return snprintf(buf, PAGE_SIZE - 1,
data->config & to_sensor_dev_attr(attr)->index ? 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, 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, ...@@ -216,8 +216,6 @@ static ssize_t set_min(struct device *dev, struct device_attribute *attr,
if (kstrtol(buf, 10, &val) < 0) if (kstrtol(buf, 10, &val) < 0)
return -EINVAL; return -EINVAL;
if (val < -128000)
return -EINVAL;
mutex_lock(&data->update_lock); mutex_lock(&data->update_lock);
...@@ -242,7 +240,7 @@ static ssize_t show_max(struct device *dev, struct device_attribute *attr, ...@@ -242,7 +240,7 @@ static ssize_t show_max(struct device *dev, struct device_attribute *attr,
return snprintf(buf, PAGE_SIZE - 1, return snprintf(buf, PAGE_SIZE - 1,
data->config & to_sensor_dev_attr(attr)->index ? 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, 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, ...@@ -253,8 +251,6 @@ static ssize_t set_max(struct device *dev, struct device_attribute *attr,
if (kstrtol(buf, 10, &val) < 0) if (kstrtol(buf, 10, &val) < 0)
return -EINVAL; return -EINVAL;
if (val >= 256000)
return -EINVAL;
mutex_lock(&data->update_lock); mutex_lock(&data->update_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment