Commit 040b106f authored by Guenter Roeck's avatar Guenter Roeck

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: default avatarGuenter Roeck <linux@roeck-us.net>
parent 7db0db3f
...@@ -388,27 +388,32 @@ static int lm75_write_temp(struct device *dev, u32 attr, long temp) ...@@ -388,27 +388,32 @@ static int lm75_write_temp(struct device *dev, u32 attr, long temp)
return regmap_write(data->regmap, reg, (u16)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); struct lm75_data *data = dev_get_drvdata(dev);
u8 index; u8 index;
s32 err; s32 err;
switch (attr) { index = find_closest(val, data->params->sample_times,
case hwmon_chip_update_interval: (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, err = lm75_write_config(data, lm75_sample_set_masks[index],
lm75_sample_set_masks[index], LM75_SAMPLE_CLEAR_MASK);
LM75_SAMPLE_CLEAR_MASK); if (err)
if (err) return err;
return err;
data->sample_time = data->params->sample_times[index];
if (data->params->resolutions) data->sample_time = data->params->sample_times[index];
data->resolution = data->params->resolutions[index]; if (data->params->resolutions)
break; 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: default:
return -EINVAL; return -EINVAL;
} }
......
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