diff options
author | Guenter Roeck <linux@roeck-us.net> | 2019-08-08 23:30:23 +0200 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2019-09-03 21:47:17 +0200 |
commit | 040b106ff8d6dcef5704f96ea84edfe28addb4a0 (patch) | |
tree | 01ef84a75502ee0f3c74f53e38aa31cb48ad2cba /drivers/hwmon | |
parent | hwmon: (lm75) Support configuring the sample time for various chips (diff) | |
download | linux-040b106ff8d6dcef5704f96ea84edfe28addb4a0.tar.xz linux-040b106ff8d6dcef5704f96ea84edfe28addb4a0.zip |
hwmon: (lm75) Move updating the sample interval to its own function
We'll need per-chip handling for updating the sample interval.
To prepare for it, separate the code implementing it into its own
function.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon')
-rw-r--r-- | drivers/hwmon/lm75.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c index 6474b8f21981..644da2620a26 100644 --- a/drivers/hwmon/lm75.c +++ b/drivers/hwmon/lm75.c @@ -388,27 +388,32 @@ static int lm75_write_temp(struct device *dev, u32 attr, long temp) return regmap_write(data->regmap, reg, (u16)temp); } -static int lm75_write_chip(struct device *dev, u32 attr, long val) +static int lm75_update_interval(struct device *dev, long val) { struct lm75_data *data = dev_get_drvdata(dev); u8 index; s32 err; - switch (attr) { - case hwmon_chip_update_interval: - index = find_closest(val, data->params->sample_times, - (int)data->params->num_sample_times); + index = find_closest(val, data->params->sample_times, + (int)data->params->num_sample_times); - err = lm75_write_config(data, - lm75_sample_set_masks[index], - LM75_SAMPLE_CLEAR_MASK); - if (err) - return err; - data->sample_time = data->params->sample_times[index]; + err = lm75_write_config(data, lm75_sample_set_masks[index], + LM75_SAMPLE_CLEAR_MASK); + if (err) + return err; - if (data->params->resolutions) - data->resolution = data->params->resolutions[index]; - break; + data->sample_time = data->params->sample_times[index]; + if (data->params->resolutions) + data->resolution = data->params->resolutions[index]; + + return 0; +} + +static int lm75_write_chip(struct device *dev, u32 attr, long val) +{ + switch (attr) { + case hwmon_chip_update_interval: + return lm75_update_interval(dev, val); default: return -EINVAL; } |