You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
hwmon: Replace SENSORS_LIMIT with clamp_val
SENSORS_LIMIT and the generic clamp_val have the same functionality, and clamp_val is more efficient. This patch reduces text size by 9052 bytes and bss size by 11624 bytes for x86_64 builds. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Acked-by: George Joseph <george.joseph@fairview5.com> Acked-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
@@ -137,7 +137,7 @@ static ssize_t set_max_min(struct device *dev,
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, -40000, 85000);
|
temp = clamp_val(temp, -40000, 85000);
|
||||||
temp = (temp + (temp < 0 ? -500 : 500)) / 1000;
|
temp = (temp + (temp < 0 ? -500 : 500)) / 1000;
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ static ssize_t set_temp_max(struct device *dev,
|
|||||||
temp /= 1000;
|
temp /= 1000;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_max[index] = SENSORS_LIMIT(temp, -128, 127);
|
data->temp_max[index] = clamp_val(temp, -128, 127);
|
||||||
if (!read_only)
|
if (!read_only)
|
||||||
i2c_smbus_write_byte_data(client, ADM1021_REG_TOS_W(index),
|
i2c_smbus_write_byte_data(client, ADM1021_REG_TOS_W(index),
|
||||||
data->temp_max[index]);
|
data->temp_max[index]);
|
||||||
@@ -218,7 +218,7 @@ static ssize_t set_temp_min(struct device *dev,
|
|||||||
temp /= 1000;
|
temp /= 1000;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_min[index] = SENSORS_LIMIT(temp, -128, 127);
|
data->temp_min[index] = clamp_val(temp, -128, 127);
|
||||||
if (!read_only)
|
if (!read_only)
|
||||||
i2c_smbus_write_byte_data(client, ADM1021_REG_THYST_W(index),
|
i2c_smbus_write_byte_data(client, ADM1021_REG_THYST_W(index),
|
||||||
data->temp_min[index]);
|
data->temp_min[index]);
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ static int adm1026_scaling[] = { /* .001 Volts */
|
|||||||
};
|
};
|
||||||
#define NEG12_OFFSET 16000
|
#define NEG12_OFFSET 16000
|
||||||
#define SCALE(val, from, to) (((val)*(to) + ((from)/2))/(from))
|
#define SCALE(val, from, to) (((val)*(to) + ((from)/2))/(from))
|
||||||
#define INS_TO_REG(n, val) (SENSORS_LIMIT(SCALE(val, adm1026_scaling[n], 192),\
|
#define INS_TO_REG(n, val) (clamp_val(SCALE(val, adm1026_scaling[n], 192),\
|
||||||
0, 255))
|
0, 255))
|
||||||
#define INS_FROM_REG(n, val) (SCALE(val, 192, adm1026_scaling[n]))
|
#define INS_FROM_REG(n, val) (SCALE(val, 192, adm1026_scaling[n]))
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ static int adm1026_scaling[] = { /* .001 Volts */
|
|||||||
* 22500 kHz * 60 (sec/min) * 2 (pulse) / 2 (pulse/rev) == 1350000
|
* 22500 kHz * 60 (sec/min) * 2 (pulse) / 2 (pulse/rev) == 1350000
|
||||||
*/
|
*/
|
||||||
#define FAN_TO_REG(val, div) ((val) <= 0 ? 0xff : \
|
#define FAN_TO_REG(val, div) ((val) <= 0 ? 0xff : \
|
||||||
SENSORS_LIMIT(1350000 / ((val) * (div)), \
|
clamp_val(1350000 / ((val) * (div)), \
|
||||||
1, 254))
|
1, 254))
|
||||||
#define FAN_FROM_REG(val, div) ((val) == 0 ? -1 : (val) == 0xff ? 0 : \
|
#define FAN_FROM_REG(val, div) ((val) == 0 ? -1 : (val) == 0xff ? 0 : \
|
||||||
1350000 / ((val) * (div)))
|
1350000 / ((val) * (div)))
|
||||||
@@ -215,14 +215,14 @@ static int adm1026_scaling[] = { /* .001 Volts */
|
|||||||
#define DIV_TO_REG(val) ((val) >= 8 ? 3 : (val) >= 4 ? 2 : (val) >= 2 ? 1 : 0)
|
#define DIV_TO_REG(val) ((val) >= 8 ? 3 : (val) >= 4 ? 2 : (val) >= 2 ? 1 : 0)
|
||||||
|
|
||||||
/* Temperature is reported in 1 degC increments */
|
/* Temperature is reported in 1 degC increments */
|
||||||
#define TEMP_TO_REG(val) (SENSORS_LIMIT(((val) + ((val) < 0 ? -500 : 500)) \
|
#define TEMP_TO_REG(val) (clamp_val(((val) + ((val) < 0 ? -500 : 500)) \
|
||||||
/ 1000, -127, 127))
|
/ 1000, -127, 127))
|
||||||
#define TEMP_FROM_REG(val) ((val) * 1000)
|
#define TEMP_FROM_REG(val) ((val) * 1000)
|
||||||
#define OFFSET_TO_REG(val) (SENSORS_LIMIT(((val) + ((val) < 0 ? -500 : 500)) \
|
#define OFFSET_TO_REG(val) (clamp_val(((val) + ((val) < 0 ? -500 : 500)) \
|
||||||
/ 1000, -127, 127))
|
/ 1000, -127, 127))
|
||||||
#define OFFSET_FROM_REG(val) ((val) * 1000)
|
#define OFFSET_FROM_REG(val) ((val) * 1000)
|
||||||
|
|
||||||
#define PWM_TO_REG(val) (SENSORS_LIMIT(val, 0, 255))
|
#define PWM_TO_REG(val) (clamp_val(val, 0, 255))
|
||||||
#define PWM_FROM_REG(val) (val)
|
#define PWM_FROM_REG(val) (val)
|
||||||
|
|
||||||
#define PWM_MIN_TO_REG(val) ((val) & 0xf0)
|
#define PWM_MIN_TO_REG(val) ((val) & 0xf0)
|
||||||
@@ -233,7 +233,7 @@ static int adm1026_scaling[] = { /* .001 Volts */
|
|||||||
* indicates that the DAC could be used to drive the fans, but in our
|
* indicates that the DAC could be used to drive the fans, but in our
|
||||||
* example board (Arima HDAMA) it isn't connected to the fans at all.
|
* example board (Arima HDAMA) it isn't connected to the fans at all.
|
||||||
*/
|
*/
|
||||||
#define DAC_TO_REG(val) (SENSORS_LIMIT(((((val) * 255) + 500) / 2500), 0, 255))
|
#define DAC_TO_REG(val) (clamp_val(((((val) * 255) + 500) / 2500), 0, 255))
|
||||||
#define DAC_FROM_REG(val) (((val) * 2500) / 255)
|
#define DAC_FROM_REG(val) (((val) * 2500) / 255)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -933,7 +933,7 @@ static void fixup_fan_min(struct device *dev, int fan, int old_div)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
new_min = data->fan_min[fan] * old_div / new_div;
|
new_min = data->fan_min[fan] * old_div / new_div;
|
||||||
new_min = SENSORS_LIMIT(new_min, 1, 254);
|
new_min = clamp_val(new_min, 1, 254);
|
||||||
data->fan_min[fan] = new_min;
|
data->fan_min[fan] = new_min;
|
||||||
adm1026_write_value(client, ADM1026_REG_FAN_MIN(fan), new_min);
|
adm1026_write_value(client, ADM1026_REG_FAN_MIN(fan), new_min);
|
||||||
}
|
}
|
||||||
@@ -1527,7 +1527,7 @@ static ssize_t set_auto_pwm_min(struct device *dev,
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->pwm1.auto_pwm_min = SENSORS_LIMIT(val, 0, 255);
|
data->pwm1.auto_pwm_min = clamp_val(val, 0, 255);
|
||||||
if (data->pwm1.enable == 2) { /* apply immediately */
|
if (data->pwm1.enable == 2) { /* apply immediately */
|
||||||
data->pwm1.pwm = PWM_TO_REG((data->pwm1.pwm & 0x0f) |
|
data->pwm1.pwm = PWM_TO_REG((data->pwm1.pwm & 0x0f) |
|
||||||
PWM_MIN_TO_REG(data->pwm1.auto_pwm_min));
|
PWM_MIN_TO_REG(data->pwm1.auto_pwm_min));
|
||||||
|
|||||||
@@ -162,13 +162,13 @@ adm1031_write_value(struct i2c_client *client, u8 reg, unsigned int value)
|
|||||||
static int FAN_TO_REG(int reg, int div)
|
static int FAN_TO_REG(int reg, int div)
|
||||||
{
|
{
|
||||||
int tmp;
|
int tmp;
|
||||||
tmp = FAN_FROM_REG(SENSORS_LIMIT(reg, 0, 65535), div);
|
tmp = FAN_FROM_REG(clamp_val(reg, 0, 65535), div);
|
||||||
return tmp > 255 ? 255 : tmp;
|
return tmp > 255 ? 255 : tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FAN_DIV_FROM_REG(reg) (1<<(((reg)&0xc0)>>6))
|
#define FAN_DIV_FROM_REG(reg) (1<<(((reg)&0xc0)>>6))
|
||||||
|
|
||||||
#define PWM_TO_REG(val) (SENSORS_LIMIT((val), 0, 255) >> 4)
|
#define PWM_TO_REG(val) (clamp_val((val), 0, 255) >> 4)
|
||||||
#define PWM_FROM_REG(val) ((val) << 4)
|
#define PWM_FROM_REG(val) ((val) << 4)
|
||||||
|
|
||||||
#define FAN_CHAN_FROM_REG(reg) (((reg) >> 5) & 7)
|
#define FAN_CHAN_FROM_REG(reg) (((reg) >> 5) & 7)
|
||||||
@@ -675,7 +675,7 @@ static ssize_t set_temp_offset(struct device *dev,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, -15000, 15000);
|
val = clamp_val(val, -15000, 15000);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_offset[nr] = TEMP_OFFSET_TO_REG(val);
|
data->temp_offset[nr] = TEMP_OFFSET_TO_REG(val);
|
||||||
adm1031_write_value(client, ADM1031_REG_TEMP_OFFSET(nr),
|
adm1031_write_value(client, ADM1031_REG_TEMP_OFFSET(nr),
|
||||||
@@ -696,7 +696,7 @@ static ssize_t set_temp_min(struct device *dev, struct device_attribute *attr,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, -55000, nr == 0 ? 127750 : 127875);
|
val = clamp_val(val, -55000, nr == 0 ? 127750 : 127875);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_min[nr] = TEMP_TO_REG(val);
|
data->temp_min[nr] = TEMP_TO_REG(val);
|
||||||
adm1031_write_value(client, ADM1031_REG_TEMP_MIN(nr),
|
adm1031_write_value(client, ADM1031_REG_TEMP_MIN(nr),
|
||||||
@@ -717,7 +717,7 @@ static ssize_t set_temp_max(struct device *dev, struct device_attribute *attr,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, -55000, nr == 0 ? 127750 : 127875);
|
val = clamp_val(val, -55000, nr == 0 ? 127750 : 127875);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_max[nr] = TEMP_TO_REG(val);
|
data->temp_max[nr] = TEMP_TO_REG(val);
|
||||||
adm1031_write_value(client, ADM1031_REG_TEMP_MAX(nr),
|
adm1031_write_value(client, ADM1031_REG_TEMP_MAX(nr),
|
||||||
@@ -738,7 +738,7 @@ static ssize_t set_temp_crit(struct device *dev, struct device_attribute *attr,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, -55000, nr == 0 ? 127750 : 127875);
|
val = clamp_val(val, -55000, nr == 0 ? 127750 : 127875);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_crit[nr] = TEMP_TO_REG(val);
|
data->temp_crit[nr] = TEMP_TO_REG(val);
|
||||||
adm1031_write_value(client, ADM1031_REG_TEMP_CRIT(nr),
|
adm1031_write_value(client, ADM1031_REG_TEMP_CRIT(nr),
|
||||||
|
|||||||
@@ -98,13 +98,13 @@ static inline unsigned int IN_FROM_REG(u8 reg, int n)
|
|||||||
|
|
||||||
static inline u8 IN_TO_REG(unsigned long val, int n)
|
static inline u8 IN_TO_REG(unsigned long val, int n)
|
||||||
{
|
{
|
||||||
return SENSORS_LIMIT(SCALE(val, 192, nom_mv[n]), 0, 255);
|
return clamp_val(SCALE(val, 192, nom_mv[n]), 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* temperature range: -40..125, 127 disables temperature alarm */
|
/* temperature range: -40..125, 127 disables temperature alarm */
|
||||||
static inline s8 TEMP_TO_REG(long val)
|
static inline s8 TEMP_TO_REG(long val)
|
||||||
{
|
{
|
||||||
return SENSORS_LIMIT(SCALE(val, 1, 1000), -40, 127);
|
return clamp_val(SCALE(val, 1, 1000), -40, 127);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* two fans, each with low fan speed limit */
|
/* two fans, each with low fan speed limit */
|
||||||
@@ -122,7 +122,7 @@ static inline unsigned int FAN_FROM_REG(u8 reg, u8 div)
|
|||||||
/* analog out 0..1250mV */
|
/* analog out 0..1250mV */
|
||||||
static inline u8 AOUT_TO_REG(unsigned long val)
|
static inline u8 AOUT_TO_REG(unsigned long val)
|
||||||
{
|
{
|
||||||
return SENSORS_LIMIT(SCALE(val, 255, 1250), 0, 255);
|
return clamp_val(SCALE(val, 255, 1250), 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned int AOUT_FROM_REG(u8 reg)
|
static inline unsigned int AOUT_FROM_REG(u8 reg)
|
||||||
|
|||||||
@@ -163,9 +163,9 @@ static int ads7828_probe(struct i2c_client *client,
|
|||||||
|
|
||||||
/* Bound Vref with min/max values if it was provided */
|
/* Bound Vref with min/max values if it was provided */
|
||||||
if (data->vref_mv)
|
if (data->vref_mv)
|
||||||
data->vref_mv = SENSORS_LIMIT(data->vref_mv,
|
data->vref_mv = clamp_val(data->vref_mv,
|
||||||
ADS7828_EXT_VREF_MV_MIN,
|
ADS7828_EXT_VREF_MV_MIN,
|
||||||
ADS7828_EXT_VREF_MV_MAX);
|
ADS7828_EXT_VREF_MV_MAX);
|
||||||
else
|
else
|
||||||
data->vref_mv = ADS7828_INT_VREF_MV;
|
data->vref_mv = ADS7828_INT_VREF_MV;
|
||||||
|
|
||||||
|
|||||||
@@ -173,8 +173,8 @@ abort:
|
|||||||
|
|
||||||
static s16 ADT7410_TEMP_TO_REG(long temp)
|
static s16 ADT7410_TEMP_TO_REG(long temp)
|
||||||
{
|
{
|
||||||
return DIV_ROUND_CLOSEST(SENSORS_LIMIT(temp, ADT7410_TEMP_MIN,
|
return DIV_ROUND_CLOSEST(clamp_val(temp, ADT7410_TEMP_MIN,
|
||||||
ADT7410_TEMP_MAX) * 128, 1000);
|
ADT7410_TEMP_MAX) * 128, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ADT7410_REG_TO_TEMP(struct adt7410_data *data, s16 reg)
|
static int ADT7410_REG_TO_TEMP(struct adt7410_data *data, s16 reg)
|
||||||
@@ -269,9 +269,9 @@ static ssize_t adt7410_set_t_hyst(struct device *dev,
|
|||||||
return ret;
|
return ret;
|
||||||
/* convert absolute hysteresis value to a 4 bit delta value */
|
/* convert absolute hysteresis value to a 4 bit delta value */
|
||||||
limit = ADT7410_REG_TO_TEMP(data, data->temp[1]);
|
limit = ADT7410_REG_TO_TEMP(data, data->temp[1]);
|
||||||
hyst = SENSORS_LIMIT(hyst, ADT7410_TEMP_MIN, ADT7410_TEMP_MAX);
|
hyst = clamp_val(hyst, ADT7410_TEMP_MIN, ADT7410_TEMP_MAX);
|
||||||
data->hyst = SENSORS_LIMIT(DIV_ROUND_CLOSEST(limit - hyst, 1000),
|
data->hyst = clamp_val(DIV_ROUND_CLOSEST(limit - hyst, 1000), 0,
|
||||||
0, ADT7410_T_HYST_MASK);
|
ADT7410_T_HYST_MASK);
|
||||||
ret = i2c_smbus_write_byte_data(client, ADT7410_T_HYST, data->hyst);
|
ret = i2c_smbus_write_byte_data(client, ADT7410_T_HYST, data->hyst);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
+10
-10
@@ -836,7 +836,7 @@ static ssize_t set_temp_min(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
|
temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->temp_min[attr->index] = temp;
|
data->temp_min[attr->index] = temp;
|
||||||
@@ -874,7 +874,7 @@ static ssize_t set_temp_max(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
|
temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->temp_max[attr->index] = temp;
|
data->temp_max[attr->index] = temp;
|
||||||
@@ -939,7 +939,7 @@ static ssize_t set_volt_max(struct device *dev,
|
|||||||
|
|
||||||
temp *= 1000; /* convert mV to uV */
|
temp *= 1000; /* convert mV to uV */
|
||||||
temp = DIV_ROUND_CLOSEST(temp, x);
|
temp = DIV_ROUND_CLOSEST(temp, x);
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->volt_max[attr->index] = temp;
|
data->volt_max[attr->index] = temp;
|
||||||
@@ -981,7 +981,7 @@ static ssize_t set_volt_min(struct device *dev,
|
|||||||
|
|
||||||
temp *= 1000; /* convert mV to uV */
|
temp *= 1000; /* convert mV to uV */
|
||||||
temp = DIV_ROUND_CLOSEST(temp, x);
|
temp = DIV_ROUND_CLOSEST(temp, x);
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->volt_min[attr->index] = temp;
|
data->volt_min[attr->index] = temp;
|
||||||
@@ -1071,7 +1071,7 @@ static ssize_t set_fan_min(struct device *dev,
|
|||||||
|
|
||||||
temp = FAN_RPM_TO_PERIOD(temp);
|
temp = FAN_RPM_TO_PERIOD(temp);
|
||||||
temp >>= 8;
|
temp >>= 8;
|
||||||
temp = SENSORS_LIMIT(temp, 1, 255);
|
temp = clamp_val(temp, 1, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->fan_min[attr->index] = temp;
|
data->fan_min[attr->index] = temp;
|
||||||
@@ -1149,7 +1149,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *devattr,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm[attr->index] = temp;
|
data->pwm[attr->index] = temp;
|
||||||
@@ -1179,7 +1179,7 @@ static ssize_t set_pwm_max(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm_max = temp;
|
data->pwm_max = temp;
|
||||||
@@ -1211,7 +1211,7 @@ static ssize_t set_pwm_min(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm_min[attr->index] = temp;
|
data->pwm_min[attr->index] = temp;
|
||||||
@@ -1246,7 +1246,7 @@ static ssize_t set_pwm_hyst(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
||||||
temp = SENSORS_LIMIT(temp, 0, 15);
|
temp = clamp_val(temp, 0, 15);
|
||||||
|
|
||||||
/* package things up */
|
/* package things up */
|
||||||
temp &= ADT7462_PWM_HYST_MASK;
|
temp &= ADT7462_PWM_HYST_MASK;
|
||||||
@@ -1333,7 +1333,7 @@ static ssize_t set_pwm_tmin(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
|
temp = DIV_ROUND_CLOSEST(temp, 1000) + 64;
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm_tmin[attr->index] = temp;
|
data->pwm_tmin[attr->index] = temp;
|
||||||
|
|||||||
+10
-10
@@ -452,7 +452,7 @@ static ssize_t set_auto_update_interval(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, 0, 60000);
|
temp = clamp_val(temp, 0, 60000);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->auto_update_interval = temp;
|
data->auto_update_interval = temp;
|
||||||
@@ -481,7 +481,7 @@ static ssize_t set_num_temp_sensors(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, -1, 10);
|
temp = clamp_val(temp, -1, 10);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->num_temp_sensors = temp;
|
data->num_temp_sensors = temp;
|
||||||
@@ -515,7 +515,7 @@ static ssize_t set_temp_min(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->temp_min[attr->index] = temp;
|
data->temp_min[attr->index] = temp;
|
||||||
@@ -549,7 +549,7 @@ static ssize_t set_temp_max(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->temp_max[attr->index] = temp;
|
data->temp_max[attr->index] = temp;
|
||||||
@@ -604,7 +604,7 @@ static ssize_t set_fan_max(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = FAN_RPM_TO_PERIOD(temp);
|
temp = FAN_RPM_TO_PERIOD(temp);
|
||||||
temp = SENSORS_LIMIT(temp, 1, 65534);
|
temp = clamp_val(temp, 1, 65534);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->fan_max[attr->index] = temp;
|
data->fan_max[attr->index] = temp;
|
||||||
@@ -641,7 +641,7 @@ static ssize_t set_fan_min(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = FAN_RPM_TO_PERIOD(temp);
|
temp = FAN_RPM_TO_PERIOD(temp);
|
||||||
temp = SENSORS_LIMIT(temp, 1, 65534);
|
temp = clamp_val(temp, 1, 65534);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->fan_min[attr->index] = temp;
|
data->fan_min[attr->index] = temp;
|
||||||
@@ -717,7 +717,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *devattr,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm[attr->index] = temp;
|
data->pwm[attr->index] = temp;
|
||||||
@@ -749,7 +749,7 @@ static ssize_t set_pwm_max(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm_max[attr->index] = temp;
|
data->pwm_max[attr->index] = temp;
|
||||||
@@ -782,7 +782,7 @@ static ssize_t set_pwm_min(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &temp))
|
if (kstrtol(buf, 10, &temp))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm_min[attr->index] = temp;
|
data->pwm_min[attr->index] = temp;
|
||||||
@@ -826,7 +826,7 @@ static ssize_t set_pwm_tmin(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
||||||
temp = SENSORS_LIMIT(temp, 0, 255);
|
temp = clamp_val(temp, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
data->pwm_tmin[attr->index] = temp;
|
data->pwm_tmin[attr->index] = temp;
|
||||||
|
|||||||
@@ -201,10 +201,10 @@ static inline u16 temp2reg(struct adt7475_data *data, long val)
|
|||||||
u16 ret;
|
u16 ret;
|
||||||
|
|
||||||
if (!(data->config5 & CONFIG5_TWOSCOMP)) {
|
if (!(data->config5 & CONFIG5_TWOSCOMP)) {
|
||||||
val = SENSORS_LIMIT(val, -64000, 191000);
|
val = clamp_val(val, -64000, 191000);
|
||||||
ret = (val + 64500) / 1000;
|
ret = (val + 64500) / 1000;
|
||||||
} else {
|
} else {
|
||||||
val = SENSORS_LIMIT(val, -128000, 127000);
|
val = clamp_val(val, -128000, 127000);
|
||||||
if (val < -500)
|
if (val < -500)
|
||||||
ret = (256500 + val) / 1000;
|
ret = (256500 + val) / 1000;
|
||||||
else
|
else
|
||||||
@@ -240,7 +240,7 @@ static inline u16 rpm2tach(unsigned long rpm)
|
|||||||
if (rpm == 0)
|
if (rpm == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return SENSORS_LIMIT((90000 * 60) / rpm, 1, 0xFFFF);
|
return clamp_val((90000 * 60) / rpm, 1, 0xFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scaling factors for voltage inputs, taken from the ADT7490 datasheet */
|
/* Scaling factors for voltage inputs, taken from the ADT7490 datasheet */
|
||||||
@@ -271,7 +271,7 @@ static inline u16 volt2reg(int channel, long volt, u8 bypass_attn)
|
|||||||
reg = (volt * 1024) / 2250;
|
reg = (volt * 1024) / 2250;
|
||||||
else
|
else
|
||||||
reg = (volt * r[1] * 1024) / ((r[0] + r[1]) * 2250);
|
reg = (volt * r[1] * 1024) / ((r[0] + r[1]) * 2250);
|
||||||
return SENSORS_LIMIT(reg, 0, 1023) & (0xff << 2);
|
return clamp_val(reg, 0, 1023) & (0xff << 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u16 adt7475_read_word(struct i2c_client *client, int reg)
|
static u16 adt7475_read_word(struct i2c_client *client, int reg)
|
||||||
@@ -451,10 +451,10 @@ static ssize_t set_temp(struct device *dev, struct device_attribute *attr,
|
|||||||
switch (sattr->nr) {
|
switch (sattr->nr) {
|
||||||
case OFFSET:
|
case OFFSET:
|
||||||
if (data->config5 & CONFIG5_TEMPOFFSET) {
|
if (data->config5 & CONFIG5_TEMPOFFSET) {
|
||||||
val = SENSORS_LIMIT(val, -63000, 127000);
|
val = clamp_val(val, -63000, 127000);
|
||||||
out = data->temp[OFFSET][sattr->index] = val / 1000;
|
out = data->temp[OFFSET][sattr->index] = val / 1000;
|
||||||
} else {
|
} else {
|
||||||
val = SENSORS_LIMIT(val, -63000, 64000);
|
val = clamp_val(val, -63000, 64000);
|
||||||
out = data->temp[OFFSET][sattr->index] = val / 500;
|
out = data->temp[OFFSET][sattr->index] = val / 500;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -471,7 +471,7 @@ static ssize_t set_temp(struct device *dev, struct device_attribute *attr,
|
|||||||
adt7475_read_hystersis(client);
|
adt7475_read_hystersis(client);
|
||||||
|
|
||||||
temp = reg2temp(data, data->temp[THERM][sattr->index]);
|
temp = reg2temp(data, data->temp[THERM][sattr->index]);
|
||||||
val = SENSORS_LIMIT(val, temp - 15000, temp);
|
val = clamp_val(val, temp - 15000, temp);
|
||||||
val = (temp - val) / 1000;
|
val = (temp - val) / 1000;
|
||||||
|
|
||||||
if (sattr->index != 1) {
|
if (sattr->index != 1) {
|
||||||
@@ -577,7 +577,7 @@ static ssize_t set_point2(struct device *dev, struct device_attribute *attr,
|
|||||||
* to figure the range
|
* to figure the range
|
||||||
*/
|
*/
|
||||||
temp = reg2temp(data, data->temp[AUTOMIN][sattr->index]);
|
temp = reg2temp(data, data->temp[AUTOMIN][sattr->index]);
|
||||||
val = SENSORS_LIMIT(val, temp + autorange_table[0],
|
val = clamp_val(val, temp + autorange_table[0],
|
||||||
temp + autorange_table[ARRAY_SIZE(autorange_table) - 1]);
|
temp + autorange_table[ARRAY_SIZE(autorange_table) - 1]);
|
||||||
val -= temp;
|
val -= temp;
|
||||||
|
|
||||||
@@ -701,7 +701,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *attr,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->pwm[sattr->nr][sattr->index] = SENSORS_LIMIT(val, 0, 0xFF);
|
data->pwm[sattr->nr][sattr->index] = clamp_val(val, 0, 0xFF);
|
||||||
i2c_smbus_write_byte_data(client, reg,
|
i2c_smbus_write_byte_data(client, reg,
|
||||||
data->pwm[sattr->nr][sattr->index]);
|
data->pwm[sattr->nr][sattr->index]);
|
||||||
|
|
||||||
|
|||||||
+12
-20
@@ -241,7 +241,7 @@ static ssize_t set_temp(
|
|||||||
int ret = kstrtol(buf, 10, &val);
|
int ret = kstrtol(buf, 10, &val);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
val = SENSORS_LIMIT(val / 1000, -128, 127);
|
val = clamp_val(val / 1000, -128, 127);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp[ix] = val;
|
data->temp[ix] = val;
|
||||||
@@ -332,7 +332,7 @@ static ssize_t set_pwm1(
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->pwm1 = SENSORS_LIMIT(val , 0, 255);
|
data->pwm1 = clamp_val(val , 0, 255);
|
||||||
i2c_smbus_write_byte_data(client, AMC6821_REG_DCY, data->pwm1);
|
i2c_smbus_write_byte_data(client, AMC6821_REG_DCY, data->pwm1);
|
||||||
mutex_unlock(&data->update_lock);
|
mutex_unlock(&data->update_lock);
|
||||||
return count;
|
return count;
|
||||||
@@ -499,11 +499,11 @@ static ssize_t set_temp_auto_point_temp(
|
|||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
switch (ix) {
|
switch (ix) {
|
||||||
case 0:
|
case 0:
|
||||||
ptemp[0] = SENSORS_LIMIT(val / 1000, 0,
|
ptemp[0] = clamp_val(val / 1000, 0,
|
||||||
data->temp1_auto_point_temp[1]);
|
data->temp1_auto_point_temp[1]);
|
||||||
ptemp[0] = SENSORS_LIMIT(ptemp[0], 0,
|
ptemp[0] = clamp_val(ptemp[0], 0,
|
||||||
data->temp2_auto_point_temp[1]);
|
data->temp2_auto_point_temp[1]);
|
||||||
ptemp[0] = SENSORS_LIMIT(ptemp[0], 0, 63);
|
ptemp[0] = clamp_val(ptemp[0], 0, 63);
|
||||||
if (i2c_smbus_write_byte_data(
|
if (i2c_smbus_write_byte_data(
|
||||||
client,
|
client,
|
||||||
AMC6821_REG_PSV_TEMP,
|
AMC6821_REG_PSV_TEMP,
|
||||||
@@ -515,20 +515,12 @@ static ssize_t set_temp_auto_point_temp(
|
|||||||
goto EXIT;
|
goto EXIT;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
ptemp[1] = SENSORS_LIMIT(
|
ptemp[1] = clamp_val(val / 1000, (ptemp[0] & 0x7C) + 4, 124);
|
||||||
val / 1000,
|
|
||||||
(ptemp[0] & 0x7C) + 4,
|
|
||||||
124);
|
|
||||||
ptemp[1] &= 0x7C;
|
ptemp[1] &= 0x7C;
|
||||||
ptemp[2] = SENSORS_LIMIT(
|
ptemp[2] = clamp_val(ptemp[2], ptemp[1] + 1, 255);
|
||||||
ptemp[2], ptemp[1] + 1,
|
|
||||||
255);
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
ptemp[2] = SENSORS_LIMIT(
|
ptemp[2] = clamp_val(val / 1000, ptemp[1]+1, 255);
|
||||||
val / 1000,
|
|
||||||
ptemp[1]+1,
|
|
||||||
255);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_dbg(dev, "Unknown attr->index (%d).\n", ix);
|
dev_dbg(dev, "Unknown attr->index (%d).\n", ix);
|
||||||
@@ -561,7 +553,7 @@ static ssize_t set_pwm1_auto_point_pwm(
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->pwm1_auto_point_pwm[1] = SENSORS_LIMIT(val, 0, 254);
|
data->pwm1_auto_point_pwm[1] = clamp_val(val, 0, 254);
|
||||||
if (i2c_smbus_write_byte_data(client, AMC6821_REG_DCY_LOW_TEMP,
|
if (i2c_smbus_write_byte_data(client, AMC6821_REG_DCY_LOW_TEMP,
|
||||||
data->pwm1_auto_point_pwm[1])) {
|
data->pwm1_auto_point_pwm[1])) {
|
||||||
dev_err(&client->dev, "Register write error, aborting.\n");
|
dev_err(&client->dev, "Register write error, aborting.\n");
|
||||||
@@ -629,7 +621,7 @@ static ssize_t set_fan(
|
|||||||
val = 1 > val ? 0xFFFF : 6000000/val;
|
val = 1 > val ? 0xFFFF : 6000000/val;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->fan[ix] = (u16) SENSORS_LIMIT(val, 1, 0xFFFF);
|
data->fan[ix] = (u16) clamp_val(val, 1, 0xFFFF);
|
||||||
if (i2c_smbus_write_byte_data(client, fan_reg_low[ix],
|
if (i2c_smbus_write_byte_data(client, fan_reg_low[ix],
|
||||||
data->fan[ix] & 0xFF)) {
|
data->fan[ix] & 0xFF)) {
|
||||||
dev_err(&client->dev, "Register write error, aborting.\n");
|
dev_err(&client->dev, "Register write error, aborting.\n");
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ static const u16 asb100_reg_temp_hyst[] = {0, 0x3a, 0x153, 0x253, 0x19};
|
|||||||
*/
|
*/
|
||||||
static u8 IN_TO_REG(unsigned val)
|
static u8 IN_TO_REG(unsigned val)
|
||||||
{
|
{
|
||||||
unsigned nval = SENSORS_LIMIT(val, ASB100_IN_MIN, ASB100_IN_MAX);
|
unsigned nval = clamp_val(val, ASB100_IN_MIN, ASB100_IN_MAX);
|
||||||
return (nval + 8) / 16;
|
return (nval + 8) / 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,8 +129,8 @@ static u8 FAN_TO_REG(long rpm, int div)
|
|||||||
return 0;
|
return 0;
|
||||||
if (rpm == 0)
|
if (rpm == 0)
|
||||||
return 255;
|
return 255;
|
||||||
rpm = SENSORS_LIMIT(rpm, 1, 1000000);
|
rpm = clamp_val(rpm, 1, 1000000);
|
||||||
return SENSORS_LIMIT((1350000 + rpm * div / 2) / (rpm * div), 1, 254);
|
return clamp_val((1350000 + rpm * div / 2) / (rpm * div), 1, 254);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int FAN_FROM_REG(u8 val, int div)
|
static int FAN_FROM_REG(u8 val, int div)
|
||||||
@@ -148,7 +148,7 @@ static int FAN_FROM_REG(u8 val, int div)
|
|||||||
*/
|
*/
|
||||||
static u8 TEMP_TO_REG(long temp)
|
static u8 TEMP_TO_REG(long temp)
|
||||||
{
|
{
|
||||||
int ntemp = SENSORS_LIMIT(temp, ASB100_TEMP_MIN, ASB100_TEMP_MAX);
|
int ntemp = clamp_val(temp, ASB100_TEMP_MIN, ASB100_TEMP_MAX);
|
||||||
ntemp += (ntemp < 0 ? -500 : 500);
|
ntemp += (ntemp < 0 ? -500 : 500);
|
||||||
return (u8)(ntemp / 1000);
|
return (u8)(ntemp / 1000);
|
||||||
}
|
}
|
||||||
@@ -164,7 +164,7 @@ static int TEMP_FROM_REG(u8 reg)
|
|||||||
*/
|
*/
|
||||||
static u8 ASB100_PWM_TO_REG(int pwm)
|
static u8 ASB100_PWM_TO_REG(int pwm)
|
||||||
{
|
{
|
||||||
pwm = SENSORS_LIMIT(pwm, 0, 255);
|
pwm = clamp_val(pwm, 0, 255);
|
||||||
return (u8)(pwm / 16);
|
return (u8)(pwm / 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-13
@@ -191,7 +191,7 @@ static ssize_t store_u8(struct device *dev, struct device_attribute *attr,
|
|||||||
if (kstrtol(buf, 10, &reqval))
|
if (kstrtol(buf, 10, &reqval))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
reqval = SENSORS_LIMIT(reqval, 0, 255);
|
reqval = clamp_val(reqval, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->reg[param->msb[0]] = reqval;
|
data->reg[param->msb[0]] = reqval;
|
||||||
@@ -224,7 +224,7 @@ static ssize_t store_bitmask(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &reqval))
|
if (kstrtol(buf, 10, &reqval))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
reqval = SENSORS_LIMIT(reqval, 0, param->mask[0]);
|
reqval = clamp_val(reqval, 0, param->mask[0]);
|
||||||
|
|
||||||
reqval = (reqval & param->mask[0]) << param->shift[0];
|
reqval = (reqval & param->mask[0]) << param->shift[0];
|
||||||
|
|
||||||
@@ -274,7 +274,7 @@ static ssize_t store_fan16(struct device *dev,
|
|||||||
* generating an alarm.
|
* generating an alarm.
|
||||||
*/
|
*/
|
||||||
reqval =
|
reqval =
|
||||||
(reqval <= 0 ? 0xffff : SENSORS_LIMIT(5400000 / reqval, 0, 0xfffe));
|
(reqval <= 0 ? 0xffff : clamp_val(5400000 / reqval, 0, 0xfffe));
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->reg[param->msb[0]] = (reqval >> 8) & 0xff;
|
data->reg[param->msb[0]] = (reqval >> 8) & 0xff;
|
||||||
@@ -343,11 +343,11 @@ static ssize_t store_in8(struct device *dev, struct device_attribute *attr,
|
|||||||
if (kstrtol(buf, 10, &reqval))
|
if (kstrtol(buf, 10, &reqval))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
reqval = SENSORS_LIMIT(reqval, 0, 0xffff);
|
reqval = clamp_val(reqval, 0, 0xffff);
|
||||||
|
|
||||||
reqval = reqval * 0xc0 / asc7621_in_scaling[nr];
|
reqval = reqval * 0xc0 / asc7621_in_scaling[nr];
|
||||||
|
|
||||||
reqval = SENSORS_LIMIT(reqval, 0, 0xff);
|
reqval = clamp_val(reqval, 0, 0xff);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->reg[param->msb[0]] = reqval;
|
data->reg[param->msb[0]] = reqval;
|
||||||
@@ -376,7 +376,7 @@ static ssize_t store_temp8(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &reqval))
|
if (kstrtol(buf, 10, &reqval))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
reqval = SENSORS_LIMIT(reqval, -127000, 127000);
|
reqval = clamp_val(reqval, -127000, 127000);
|
||||||
|
|
||||||
temp = reqval / 1000;
|
temp = reqval / 1000;
|
||||||
|
|
||||||
@@ -432,7 +432,7 @@ static ssize_t store_temp62(struct device *dev,
|
|||||||
if (kstrtol(buf, 10, &reqval))
|
if (kstrtol(buf, 10, &reqval))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
reqval = SENSORS_LIMIT(reqval, -32000, 31750);
|
reqval = clamp_val(reqval, -32000, 31750);
|
||||||
i = reqval / 1000;
|
i = reqval / 1000;
|
||||||
f = reqval - (i * 1000);
|
f = reqval - (i * 1000);
|
||||||
temp = i << 2;
|
temp = i << 2;
|
||||||
@@ -468,7 +468,7 @@ static ssize_t show_ap2_temp(struct device *dev,
|
|||||||
auto_point1 = ((s8) data->reg[param->msb[1]]) * 1000;
|
auto_point1 = ((s8) data->reg[param->msb[1]]) * 1000;
|
||||||
regval =
|
regval =
|
||||||
((data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0]);
|
((data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0]);
|
||||||
temp = auto_point1 + asc7621_range_map[SENSORS_LIMIT(regval, 0, 15)];
|
temp = auto_point1 + asc7621_range_map[clamp_val(regval, 0, 15)];
|
||||||
mutex_unlock(&data->update_lock);
|
mutex_unlock(&data->update_lock);
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", temp);
|
return sprintf(buf, "%d\n", temp);
|
||||||
@@ -489,7 +489,7 @@ static ssize_t store_ap2_temp(struct device *dev,
|
|||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
auto_point1 = data->reg[param->msb[1]] * 1000;
|
auto_point1 = data->reg[param->msb[1]] * 1000;
|
||||||
reqval = SENSORS_LIMIT(reqval, auto_point1 + 2000, auto_point1 + 80000);
|
reqval = clamp_val(reqval, auto_point1 + 2000, auto_point1 + 80000);
|
||||||
|
|
||||||
for (i = ARRAY_SIZE(asc7621_range_map) - 1; i >= 0; i--) {
|
for (i = ARRAY_SIZE(asc7621_range_map) - 1; i >= 0; i--) {
|
||||||
if (reqval >= auto_point1 + asc7621_range_map[i]) {
|
if (reqval >= auto_point1 + asc7621_range_map[i]) {
|
||||||
@@ -523,7 +523,7 @@ static ssize_t show_pwm_ac(struct device *dev,
|
|||||||
regval = config | (altbit << 3);
|
regval = config | (altbit << 3);
|
||||||
mutex_unlock(&data->update_lock);
|
mutex_unlock(&data->update_lock);
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", map[SENSORS_LIMIT(regval, 0, 15)]);
|
return sprintf(buf, "%u\n", map[clamp_val(regval, 0, 15)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t store_pwm_ac(struct device *dev,
|
static ssize_t store_pwm_ac(struct device *dev,
|
||||||
@@ -663,7 +663,7 @@ static ssize_t show_pwm_freq(struct device *dev,
|
|||||||
u8 regval =
|
u8 regval =
|
||||||
(data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0];
|
(data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0];
|
||||||
|
|
||||||
regval = SENSORS_LIMIT(regval, 0, 15);
|
regval = clamp_val(regval, 0, 15);
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", asc7621_pwm_freq_map[regval]);
|
return sprintf(buf, "%u\n", asc7621_pwm_freq_map[regval]);
|
||||||
}
|
}
|
||||||
@@ -711,7 +711,7 @@ static ssize_t show_pwm_ast(struct device *dev,
|
|||||||
u8 regval =
|
u8 regval =
|
||||||
(data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0];
|
(data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0];
|
||||||
|
|
||||||
regval = SENSORS_LIMIT(regval, 0, 7);
|
regval = clamp_val(regval, 0, 7);
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", asc7621_pwm_auto_spinup_map[regval]);
|
return sprintf(buf, "%u\n", asc7621_pwm_auto_spinup_map[regval]);
|
||||||
|
|
||||||
@@ -759,7 +759,7 @@ static ssize_t show_temp_st(struct device *dev,
|
|||||||
SETUP_SHOW_data_param(dev, attr);
|
SETUP_SHOW_data_param(dev, attr);
|
||||||
u8 regval =
|
u8 regval =
|
||||||
(data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0];
|
(data->reg[param->msb[0]] >> param->shift[0]) & param->mask[0];
|
||||||
regval = SENSORS_LIMIT(regval, 0, 7);
|
regval = clamp_val(regval, 0, 7);
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", asc7621_temp_smoothing_time_map[regval]);
|
return sprintf(buf, "%u\n", asc7621_temp_smoothing_time_map[regval]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ static inline int IN_FROM_REG(int reg, int nominal, int res)
|
|||||||
|
|
||||||
static inline int IN_TO_REG(int val, int nominal)
|
static inline int IN_TO_REG(int val, int nominal)
|
||||||
{
|
{
|
||||||
return SENSORS_LIMIT((val * 192 + nominal / 2) / nominal, 0, 255);
|
return clamp_val((val * 192 + nominal / 2) / nominal, 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -293,8 +293,7 @@ static inline int TEMP_FROM_REG(int reg, int res)
|
|||||||
|
|
||||||
static inline int TEMP_TO_REG(int val)
|
static inline int TEMP_TO_REG(int val)
|
||||||
{
|
{
|
||||||
return SENSORS_LIMIT((val < 0 ? val - 500 : val + 500) / 1000,
|
return clamp_val((val < 0 ? val - 500 : val + 500) / 1000, -128, 127);
|
||||||
-128, 127);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Temperature range */
|
/* Temperature range */
|
||||||
@@ -332,7 +331,7 @@ static inline int TEMP_HYST_FROM_REG(int reg, int ix)
|
|||||||
|
|
||||||
static inline int TEMP_HYST_TO_REG(int val, int ix, int reg)
|
static inline int TEMP_HYST_TO_REG(int val, int ix, int reg)
|
||||||
{
|
{
|
||||||
int hyst = SENSORS_LIMIT((val + 500) / 1000, 0, 15);
|
int hyst = clamp_val((val + 500) / 1000, 0, 15);
|
||||||
|
|
||||||
return (ix == 1) ? (reg & 0xf0) | hyst : (reg & 0x0f) | (hyst << 4);
|
return (ix == 1) ? (reg & 0xf0) | hyst : (reg & 0x0f) | (hyst << 4);
|
||||||
}
|
}
|
||||||
@@ -349,10 +348,10 @@ static inline int FAN_FROM_REG(int reg, int tpc)
|
|||||||
static inline int FAN_TO_REG(int val, int tpc)
|
static inline int FAN_TO_REG(int val, int tpc)
|
||||||
{
|
{
|
||||||
if (tpc) {
|
if (tpc) {
|
||||||
return SENSORS_LIMIT(val / tpc, 0, 0xffff);
|
return clamp_val(val / tpc, 0, 0xffff);
|
||||||
} else {
|
} else {
|
||||||
return (val <= 0) ? 0xffff :
|
return (val <= 0) ? 0xffff :
|
||||||
SENSORS_LIMIT(90000 * 60 / val, 0, 0xfffe);
|
clamp_val(90000 * 60 / val, 0, 0xfffe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1282,7 +1281,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *attr,
|
|||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
switch (fn) {
|
switch (fn) {
|
||||||
case SYS_PWM:
|
case SYS_PWM:
|
||||||
data->pwm[ix] = SENSORS_LIMIT(val, 0, 255);
|
data->pwm[ix] = clamp_val(val, 0, 255);
|
||||||
dme1737_write(data, DME1737_REG_PWM(ix), data->pwm[ix]);
|
dme1737_write(data, DME1737_REG_PWM(ix), data->pwm[ix]);
|
||||||
break;
|
break;
|
||||||
case SYS_PWM_FREQ:
|
case SYS_PWM_FREQ:
|
||||||
@@ -1450,7 +1449,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *attr,
|
|||||||
break;
|
break;
|
||||||
case SYS_PWM_AUTO_POINT1_PWM:
|
case SYS_PWM_AUTO_POINT1_PWM:
|
||||||
/* Only valid for pwm[1-3] */
|
/* Only valid for pwm[1-3] */
|
||||||
data->pwm_min[ix] = SENSORS_LIMIT(val, 0, 255);
|
data->pwm_min[ix] = clamp_val(val, 0, 255);
|
||||||
dme1737_write(data, DME1737_REG_PWM_MIN(ix),
|
dme1737_write(data, DME1737_REG_PWM_MIN(ix),
|
||||||
data->pwm_min[ix]);
|
data->pwm_min[ix]);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -405,7 +405,7 @@ static ssize_t set_fan_target(struct device *dev, struct device_attribute *da,
|
|||||||
if (rpm_target == 0)
|
if (rpm_target == 0)
|
||||||
data->fan_target = 0x1fff;
|
data->fan_target = 0x1fff;
|
||||||
else
|
else
|
||||||
data->fan_target = SENSORS_LIMIT(
|
data->fan_target = clamp_val(
|
||||||
(FAN_RPM_FACTOR * data->fan_multiplier) / rpm_target,
|
(FAN_RPM_FACTOR * data->fan_multiplier) / rpm_target,
|
||||||
0, 0x1fff);
|
0, 0x1fff);
|
||||||
|
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ static ssize_t set_in(struct device *dev, struct device_attribute *devattr,
|
|||||||
: EMC6W201_REG_IN_HIGH(nr);
|
: EMC6W201_REG_IN_HIGH(nr);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->in[sf][nr] = SENSORS_LIMIT(val, 0, 255);
|
data->in[sf][nr] = clamp_val(val, 0, 255);
|
||||||
err = emc6w201_write8(client, reg, data->in[sf][nr]);
|
err = emc6w201_write8(client, reg, data->in[sf][nr]);
|
||||||
mutex_unlock(&data->update_lock);
|
mutex_unlock(&data->update_lock);
|
||||||
|
|
||||||
@@ -257,7 +257,7 @@ static ssize_t set_temp(struct device *dev, struct device_attribute *devattr,
|
|||||||
: EMC6W201_REG_TEMP_HIGH(nr);
|
: EMC6W201_REG_TEMP_HIGH(nr);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp[sf][nr] = SENSORS_LIMIT(val, -127, 128);
|
data->temp[sf][nr] = clamp_val(val, -127, 128);
|
||||||
err = emc6w201_write8(client, reg, data->temp[sf][nr]);
|
err = emc6w201_write8(client, reg, data->temp[sf][nr]);
|
||||||
mutex_unlock(&data->update_lock);
|
mutex_unlock(&data->update_lock);
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@ static ssize_t set_fan(struct device *dev, struct device_attribute *devattr,
|
|||||||
val = 0xFFFF;
|
val = 0xFFFF;
|
||||||
} else {
|
} else {
|
||||||
val = DIV_ROUND_CLOSEST(5400000U, val);
|
val = DIV_ROUND_CLOSEST(5400000U, val);
|
||||||
val = SENSORS_LIMIT(val, 0, 0xFFFE);
|
val = clamp_val(val, 0, 0xFFFE);
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
|
|||||||
+12
-13
@@ -1350,7 +1350,7 @@ static ssize_t store_fan_full_speed(struct device *dev,
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, 23, 1500000);
|
val = clamp_val(val, 23, 1500000);
|
||||||
val = fan_to_reg(val);
|
val = fan_to_reg(val);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
@@ -1438,7 +1438,7 @@ static ssize_t store_in_max(struct device *dev, struct device_attribute
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
val /= 8;
|
val /= 8;
|
||||||
val = SENSORS_LIMIT(val, 0, 255);
|
val = clamp_val(val, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
f71882fg_write8(data, F71882FG_REG_IN1_HIGH, val);
|
f71882fg_write8(data, F71882FG_REG_IN1_HIGH, val);
|
||||||
@@ -1542,7 +1542,7 @@ static ssize_t store_temp_max(struct device *dev, struct device_attribute
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
val /= 1000;
|
val /= 1000;
|
||||||
val = SENSORS_LIMIT(val, 0, 255);
|
val = clamp_val(val, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
f71882fg_write8(data, F71882FG_REG_TEMP_HIGH(nr), val);
|
f71882fg_write8(data, F71882FG_REG_TEMP_HIGH(nr), val);
|
||||||
@@ -1589,8 +1589,7 @@ static ssize_t store_temp_max_hyst(struct device *dev, struct device_attribute
|
|||||||
|
|
||||||
/* convert abs to relative and check */
|
/* convert abs to relative and check */
|
||||||
data->temp_high[nr] = f71882fg_read8(data, F71882FG_REG_TEMP_HIGH(nr));
|
data->temp_high[nr] = f71882fg_read8(data, F71882FG_REG_TEMP_HIGH(nr));
|
||||||
val = SENSORS_LIMIT(val, data->temp_high[nr] - 15,
|
val = clamp_val(val, data->temp_high[nr] - 15, data->temp_high[nr]);
|
||||||
data->temp_high[nr]);
|
|
||||||
val = data->temp_high[nr] - val;
|
val = data->temp_high[nr] - val;
|
||||||
|
|
||||||
/* convert value to register contents */
|
/* convert value to register contents */
|
||||||
@@ -1627,7 +1626,7 @@ static ssize_t store_temp_crit(struct device *dev, struct device_attribute
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
val /= 1000;
|
val /= 1000;
|
||||||
val = SENSORS_LIMIT(val, 0, 255);
|
val = clamp_val(val, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
f71882fg_write8(data, F71882FG_REG_TEMP_OVT(nr), val);
|
f71882fg_write8(data, F71882FG_REG_TEMP_OVT(nr), val);
|
||||||
@@ -1754,7 +1753,7 @@ static ssize_t store_pwm(struct device *dev,
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, 0, 255);
|
val = clamp_val(val, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->pwm_enable = f71882fg_read8(data, F71882FG_REG_PWM_ENABLE);
|
data->pwm_enable = f71882fg_read8(data, F71882FG_REG_PWM_ENABLE);
|
||||||
@@ -1805,7 +1804,7 @@ static ssize_t store_simple_pwm(struct device *dev,
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, 0, 255);
|
val = clamp_val(val, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
f71882fg_write8(data, F71882FG_REG_PWM(nr), val);
|
f71882fg_write8(data, F71882FG_REG_PWM(nr), val);
|
||||||
@@ -1932,7 +1931,7 @@ static ssize_t store_pwm_auto_point_pwm(struct device *dev,
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(val, 0, 255);
|
val = clamp_val(val, 0, 255);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->pwm_enable = f71882fg_read8(data, F71882FG_REG_PWM_ENABLE);
|
data->pwm_enable = f71882fg_read8(data, F71882FG_REG_PWM_ENABLE);
|
||||||
@@ -1991,8 +1990,8 @@ static ssize_t store_pwm_auto_point_temp_hyst(struct device *dev,
|
|||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->pwm_auto_point_temp[nr][point] =
|
data->pwm_auto_point_temp[nr][point] =
|
||||||
f71882fg_read8(data, F71882FG_REG_POINT_TEMP(nr, point));
|
f71882fg_read8(data, F71882FG_REG_POINT_TEMP(nr, point));
|
||||||
val = SENSORS_LIMIT(val, data->pwm_auto_point_temp[nr][point] - 15,
|
val = clamp_val(val, data->pwm_auto_point_temp[nr][point] - 15,
|
||||||
data->pwm_auto_point_temp[nr][point]);
|
data->pwm_auto_point_temp[nr][point]);
|
||||||
val = data->pwm_auto_point_temp[nr][point] - val;
|
val = data->pwm_auto_point_temp[nr][point] - val;
|
||||||
|
|
||||||
reg = f71882fg_read8(data, F71882FG_REG_FAN_HYST(nr / 2));
|
reg = f71882fg_read8(data, F71882FG_REG_FAN_HYST(nr / 2));
|
||||||
@@ -2126,9 +2125,9 @@ static ssize_t store_pwm_auto_point_temp(struct device *dev,
|
|||||||
val /= 1000;
|
val /= 1000;
|
||||||
|
|
||||||
if (data->auto_point_temp_signed)
|
if (data->auto_point_temp_signed)
|
||||||
val = SENSORS_LIMIT(val, -128, 127);
|
val = clamp_val(val, -128, 127);
|
||||||
else
|
else
|
||||||
val = SENSORS_LIMIT(val, 0, 127);
|
val = clamp_val(val, 0, 127);
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
f71882fg_write8(data, F71882FG_REG_POINT_TEMP(pwm, point), val);
|
f71882fg_write8(data, F71882FG_REG_POINT_TEMP(pwm, point), val);
|
||||||
|
|||||||
@@ -359,7 +359,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *attr,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->pwm[nr] = SENSORS_LIMIT(val, 0, 255);
|
data->pwm[nr] = clamp_val(val, 0, 255);
|
||||||
f75375_write_pwm(client, nr);
|
f75375_write_pwm(client, nr);
|
||||||
mutex_unlock(&data->update_lock);
|
mutex_unlock(&data->update_lock);
|
||||||
return count;
|
return count;
|
||||||
@@ -556,7 +556,7 @@ static ssize_t set_in_max(struct device *dev, struct device_attribute *attr,
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(VOLT_TO_REG(val), 0, 0xff);
|
val = clamp_val(VOLT_TO_REG(val), 0, 0xff);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->in_max[nr] = val;
|
data->in_max[nr] = val;
|
||||||
f75375_write8(client, F75375_REG_VOLT_HIGH(nr), data->in_max[nr]);
|
f75375_write8(client, F75375_REG_VOLT_HIGH(nr), data->in_max[nr]);
|
||||||
@@ -577,7 +577,7 @@ static ssize_t set_in_min(struct device *dev, struct device_attribute *attr,
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(VOLT_TO_REG(val), 0, 0xff);
|
val = clamp_val(VOLT_TO_REG(val), 0, 0xff);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->in_min[nr] = val;
|
data->in_min[nr] = val;
|
||||||
f75375_write8(client, F75375_REG_VOLT_LOW(nr), data->in_min[nr]);
|
f75375_write8(client, F75375_REG_VOLT_LOW(nr), data->in_min[nr]);
|
||||||
@@ -625,7 +625,7 @@ static ssize_t set_temp_max(struct device *dev, struct device_attribute *attr,
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(TEMP_TO_REG(val), 0, 127);
|
val = clamp_val(TEMP_TO_REG(val), 0, 127);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_high[nr] = val;
|
data->temp_high[nr] = val;
|
||||||
f75375_write8(client, F75375_REG_TEMP_HIGH(nr), data->temp_high[nr]);
|
f75375_write8(client, F75375_REG_TEMP_HIGH(nr), data->temp_high[nr]);
|
||||||
@@ -646,7 +646,7 @@ static ssize_t set_temp_max_hyst(struct device *dev,
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
val = SENSORS_LIMIT(TEMP_TO_REG(val), 0, 127);
|
val = clamp_val(TEMP_TO_REG(val), 0, 127);
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->temp_max_hyst[nr] = val;
|
data->temp_max_hyst[nr] = val;
|
||||||
f75375_write8(client, F75375_REG_TEMP_HYST(nr),
|
f75375_write8(client, F75375_REG_TEMP_HYST(nr),
|
||||||
@@ -822,7 +822,7 @@ static void f75375_init(struct i2c_client *client, struct f75375_data *data,
|
|||||||
if (auto_mode_enabled(f75375s_pdata->pwm_enable[nr]) ||
|
if (auto_mode_enabled(f75375s_pdata->pwm_enable[nr]) ||
|
||||||
!duty_mode_enabled(f75375s_pdata->pwm_enable[nr]))
|
!duty_mode_enabled(f75375s_pdata->pwm_enable[nr]))
|
||||||
continue;
|
continue;
|
||||||
data->pwm[nr] = SENSORS_LIMIT(f75375s_pdata->pwm[nr], 0, 255);
|
data->pwm[nr] = clamp_val(f75375s_pdata->pwm[nr], 0, 255);
|
||||||
f75375_write_pwm(client, nr);
|
f75375_write_pwm(client, nr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -379,7 +379,7 @@ static ssize_t store_temp_max(struct device *dev, struct device_attribute
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
v = SENSORS_LIMIT(v / 1000, -128, 127) + 128;
|
v = clamp_val(v / 1000, -128, 127) + 128;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
i2c_smbus_write_byte_data(to_i2c_client(dev),
|
i2c_smbus_write_byte_data(to_i2c_client(dev),
|
||||||
@@ -540,7 +540,7 @@ static ssize_t store_pwm_auto_point1_pwm(struct device *dev,
|
|||||||
|
|
||||||
/* reg: 0 = allow turning off (except on the syl), 1-255 = 50-100% */
|
/* reg: 0 = allow turning off (except on the syl), 1-255 = 50-100% */
|
||||||
if (v || data->kind == fscsyl) {
|
if (v || data->kind == fscsyl) {
|
||||||
v = SENSORS_LIMIT(v, 128, 255);
|
v = clamp_val(v, 128, 255);
|
||||||
v = (v - 128) * 2 + 1;
|
v = (v - 128) * 2 + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *da,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
data->set_cnt = PWM_TO_CNT(SENSORS_LIMIT(val, 0, 255));
|
data->set_cnt = PWM_TO_CNT(clamp_val(val, 0, 255));
|
||||||
g760a_write_value(client, G760A_REG_SET_CNT, data->set_cnt);
|
g760a_write_value(client, G760A_REG_SET_CNT, data->set_cnt);
|
||||||
mutex_unlock(&data->update_lock);
|
mutex_unlock(&data->update_lock);
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user