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

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
Loading
Loading
Loading
Loading
+19 −14
Original line number Diff line number Diff line
@@ -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);

		err = lm75_write_config(data,
					lm75_sample_set_masks[index],
	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];

	data->sample_time = data->params->sample_times[index];
	if (data->params->resolutions)
		data->resolution = data->params->resolutions[index];
		break;

	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;
	}