aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hwmon/adt7462.c14
-rw-r--r--drivers/hwmon/adt7470.c8
-rw-r--r--drivers/hwmon/adt7473.c10
3 files changed, 13 insertions, 19 deletions
diff --git a/drivers/hwmon/adt7462.c b/drivers/hwmon/adt7462.c
index 66107b4dc12a..1852f27bac51 100644
--- a/drivers/hwmon/adt7462.c
+++ b/drivers/hwmon/adt7462.c
@@ -204,8 +204,6 @@ I2C_CLIENT_INSMOD_1(adt7462);
204#define MASK_AND_SHIFT(value, prefix) \ 204#define MASK_AND_SHIFT(value, prefix) \
205 (((value) & prefix##_MASK) >> prefix##_SHIFT) 205 (((value) & prefix##_MASK) >> prefix##_SHIFT)
206 206
207#define ROUND_DIV(x, divisor) (((x) + ((divisor) / 2)) / (divisor))
208
209struct adt7462_data { 207struct adt7462_data {
210 struct device *hwmon_dev; 208 struct device *hwmon_dev;
211 struct attribute_group attrs; 209 struct attribute_group attrs;
@@ -840,7 +838,7 @@ static ssize_t set_temp_min(struct device *dev,
840 if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) 838 if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index))
841 return -EINVAL; 839 return -EINVAL;
842 840
843 temp = ROUND_DIV(temp, 1000) + 64; 841 temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
844 temp = SENSORS_LIMIT(temp, 0, 255); 842 temp = SENSORS_LIMIT(temp, 0, 255);
845 843
846 mutex_lock(&data->lock); 844 mutex_lock(&data->lock);
@@ -878,7 +876,7 @@ static ssize_t set_temp_max(struct device *dev,
878 if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) 876 if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index))
879 return -EINVAL; 877 return -EINVAL;
880 878
881 temp = ROUND_DIV(temp, 1000) + 64; 879 temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
882 temp = SENSORS_LIMIT(temp, 0, 255); 880 temp = SENSORS_LIMIT(temp, 0, 255);
883 881
884 mutex_lock(&data->lock); 882 mutex_lock(&data->lock);
@@ -943,7 +941,7 @@ static ssize_t set_volt_max(struct device *dev,
943 return -EINVAL; 941 return -EINVAL;
944 942
945 temp *= 1000; /* convert mV to uV */ 943 temp *= 1000; /* convert mV to uV */
946 temp = ROUND_DIV(temp, x); 944 temp = DIV_ROUND_CLOSEST(temp, x);
947 temp = SENSORS_LIMIT(temp, 0, 255); 945 temp = SENSORS_LIMIT(temp, 0, 255);
948 946
949 mutex_lock(&data->lock); 947 mutex_lock(&data->lock);
@@ -985,7 +983,7 @@ static ssize_t set_volt_min(struct device *dev,
985 return -EINVAL; 983 return -EINVAL;
986 984
987 temp *= 1000; /* convert mV to uV */ 985 temp *= 1000; /* convert mV to uV */
988 temp = ROUND_DIV(temp, x); 986 temp = DIV_ROUND_CLOSEST(temp, x);
989 temp = SENSORS_LIMIT(temp, 0, 255); 987 temp = SENSORS_LIMIT(temp, 0, 255);
990 988
991 mutex_lock(&data->lock); 989 mutex_lock(&data->lock);
@@ -1250,7 +1248,7 @@ static ssize_t set_pwm_hyst(struct device *dev,
1250 if (strict_strtol(buf, 10, &temp)) 1248 if (strict_strtol(buf, 10, &temp))
1251 return -EINVAL; 1249 return -EINVAL;
1252 1250
1253 temp = ROUND_DIV(temp, 1000); 1251 temp = DIV_ROUND_CLOSEST(temp, 1000);
1254 temp = SENSORS_LIMIT(temp, 0, 15); 1252 temp = SENSORS_LIMIT(temp, 0, 15);
1255 1253
1256 /* package things up */ 1254 /* package things up */
@@ -1337,7 +1335,7 @@ static ssize_t set_pwm_tmin(struct device *dev,
1337 if (strict_strtol(buf, 10, &temp)) 1335 if (strict_strtol(buf, 10, &temp))
1338 return -EINVAL; 1336 return -EINVAL;
1339 1337
1340 temp = ROUND_DIV(temp, 1000) + 64; 1338 temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
1341 temp = SENSORS_LIMIT(temp, 0, 255); 1339 temp = SENSORS_LIMIT(temp, 0, 255);
1342 1340
1343 mutex_lock(&data->lock); 1341 mutex_lock(&data->lock);
diff --git a/drivers/hwmon/adt7470.c b/drivers/hwmon/adt7470.c
index 1311a595147e..da6c9306ca5f 100644
--- a/drivers/hwmon/adt7470.c
+++ b/drivers/hwmon/adt7470.c
@@ -137,8 +137,6 @@ I2C_CLIENT_INSMOD_1(adt7470);
137#define FAN_PERIOD_INVALID 65535 137#define FAN_PERIOD_INVALID 65535
138#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID) 138#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID)
139 139
140#define ROUND_DIV(x, divisor) (((x) + ((divisor) / 2)) / (divisor))
141
142struct adt7470_data { 140struct adt7470_data {
143 struct device *hwmon_dev; 141 struct device *hwmon_dev;
144 struct attribute_group attrs; 142 struct attribute_group attrs;
@@ -360,7 +358,7 @@ static ssize_t set_temp_min(struct device *dev,
360 if (strict_strtol(buf, 10, &temp)) 358 if (strict_strtol(buf, 10, &temp))
361 return -EINVAL; 359 return -EINVAL;
362 360
363 temp = ROUND_DIV(temp, 1000); 361 temp = DIV_ROUND_CLOSEST(temp, 1000);
364 temp = SENSORS_LIMIT(temp, 0, 255); 362 temp = SENSORS_LIMIT(temp, 0, 255);
365 363
366 mutex_lock(&data->lock); 364 mutex_lock(&data->lock);
@@ -394,7 +392,7 @@ static ssize_t set_temp_max(struct device *dev,
394 if (strict_strtol(buf, 10, &temp)) 392 if (strict_strtol(buf, 10, &temp))
395 return -EINVAL; 393 return -EINVAL;
396 394
397 temp = ROUND_DIV(temp, 1000); 395 temp = DIV_ROUND_CLOSEST(temp, 1000);
398 temp = SENSORS_LIMIT(temp, 0, 255); 396 temp = SENSORS_LIMIT(temp, 0, 255);
399 397
400 mutex_lock(&data->lock); 398 mutex_lock(&data->lock);
@@ -671,7 +669,7 @@ static ssize_t set_pwm_tmin(struct device *dev,
671 if (strict_strtol(buf, 10, &temp)) 669 if (strict_strtol(buf, 10, &temp))
672 return -EINVAL; 670 return -EINVAL;
673 671
674 temp = ROUND_DIV(temp, 1000); 672 temp = DIV_ROUND_CLOSEST(temp, 1000);
675 temp = SENSORS_LIMIT(temp, 0, 255); 673 temp = SENSORS_LIMIT(temp, 0, 255);
676 674
677 mutex_lock(&data->lock); 675 mutex_lock(&data->lock);
diff --git a/drivers/hwmon/adt7473.c b/drivers/hwmon/adt7473.c
index 18aa30866a6c..0a6ce2367b42 100644
--- a/drivers/hwmon/adt7473.c
+++ b/drivers/hwmon/adt7473.c
@@ -129,8 +129,6 @@ I2C_CLIENT_INSMOD_1(adt7473);
129#define FAN_PERIOD_INVALID 65535 129#define FAN_PERIOD_INVALID 65535
130#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID) 130#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID)
131 131
132#define ROUND_DIV(x, divisor) (((x) + ((divisor) / 2)) / (divisor))
133
134struct adt7473_data { 132struct adt7473_data {
135 struct device *hwmon_dev; 133 struct device *hwmon_dev;
136 struct attribute_group attrs; 134 struct attribute_group attrs;
@@ -459,7 +457,7 @@ static ssize_t set_temp_min(struct device *dev,
459 if (strict_strtol(buf, 10, &temp)) 457 if (strict_strtol(buf, 10, &temp))
460 return -EINVAL; 458 return -EINVAL;
461 459
462 temp = ROUND_DIV(temp, 1000); 460 temp = DIV_ROUND_CLOSEST(temp, 1000);
463 temp = encode_temp(data->temp_twos_complement, temp); 461 temp = encode_temp(data->temp_twos_complement, temp);
464 462
465 mutex_lock(&data->lock); 463 mutex_lock(&data->lock);
@@ -495,7 +493,7 @@ static ssize_t set_temp_max(struct device *dev,
495 if (strict_strtol(buf, 10, &temp)) 493 if (strict_strtol(buf, 10, &temp))
496 return -EINVAL; 494 return -EINVAL;
497 495
498 temp = ROUND_DIV(temp, 1000); 496 temp = DIV_ROUND_CLOSEST(temp, 1000);
499 temp = encode_temp(data->temp_twos_complement, temp); 497 temp = encode_temp(data->temp_twos_complement, temp);
500 498
501 mutex_lock(&data->lock); 499 mutex_lock(&data->lock);
@@ -720,7 +718,7 @@ static ssize_t set_temp_tmax(struct device *dev,
720 if (strict_strtol(buf, 10, &temp)) 718 if (strict_strtol(buf, 10, &temp))
721 return -EINVAL; 719 return -EINVAL;
722 720
723 temp = ROUND_DIV(temp, 1000); 721 temp = DIV_ROUND_CLOSEST(temp, 1000);
724 temp = encode_temp(data->temp_twos_complement, temp); 722 temp = encode_temp(data->temp_twos_complement, temp);
725 723
726 mutex_lock(&data->lock); 724 mutex_lock(&data->lock);
@@ -756,7 +754,7 @@ static ssize_t set_temp_tmin(struct device *dev,
756 if (strict_strtol(buf, 10, &temp)) 754 if (strict_strtol(buf, 10, &temp))
757 return -EINVAL; 755 return -EINVAL;
758 756
759 temp = ROUND_DIV(temp, 1000); 757 temp = DIV_ROUND_CLOSEST(temp, 1000);
760 temp = encode_temp(data->temp_twos_complement, temp); 758 temp = encode_temp(data->temp_twos_complement, temp);
761 759
762 mutex_lock(&data->lock); 760 mutex_lock(&data->lock);