Skip to content

Commit

Permalink
hwmon: (emc2103) Clamp limits instead of bailing out
Browse files Browse the repository at this point in the history
It is customary to clamp limits instead of bailing out with an error
if a configured limit is out of the range supported by the driver.
This simplifies limit configuration, since the user will not typically
know chip and/or driver specific limits.

Reviewed-by: Jean Delvare <jdelvare@suse.de>
Cc: stable@vger.kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
  • Loading branch information
Guenter Roeck committed Jul 7, 2014
1 parent 145e74a commit f6c2dd2
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions drivers/hwmon/emc2103.c
Original file line number Diff line number Diff line change
Expand Up @@ -250,9 +250,7 @@ static ssize_t set_temp_min(struct device *dev, struct device_attribute *da,
if (result < 0)
return result;

val = DIV_ROUND_CLOSEST(val, 1000);
if ((val < -63) || (val > 127))
return -EINVAL;
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -63, 127);

mutex_lock(&data->update_lock);
data->temp_min[nr] = val;
Expand All @@ -274,9 +272,7 @@ static ssize_t set_temp_max(struct device *dev, struct device_attribute *da,
if (result < 0)
return result;

val = DIV_ROUND_CLOSEST(val, 1000);
if ((val < -63) || (val > 127))
return -EINVAL;
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -63, 127);

mutex_lock(&data->update_lock);
data->temp_max[nr] = val;
Expand Down Expand Up @@ -390,15 +386,14 @@ static ssize_t set_fan_target(struct device *dev, struct device_attribute *da,
{
struct emc2103_data *data = emc2103_update_device(dev);
struct i2c_client *client = to_i2c_client(dev);
long rpm_target;
unsigned long rpm_target;

int result = kstrtol(buf, 10, &rpm_target);
int result = kstrtoul(buf, 10, &rpm_target);
if (result < 0)
return result;

/* Datasheet states 16384 as maximum RPM target (table 3.2) */
if ((rpm_target < 0) || (rpm_target > 16384))
return -EINVAL;
rpm_target = clamp_val(rpm_target, 0, 16384);

mutex_lock(&data->update_lock);

Expand Down

0 comments on commit f6c2dd2

Please sign in to comment.