static ssize_t update_interval_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct lm63_data *data = dev_get_drvdata(dev); unsigned long val; int err; err = kstrtoul(buf, 10, &val); if (err) return err; mutex_lock(&data->update_lock); lm63_set_convrate(data, clamp_val(val, 0, 100000)); mutex_unlock(&data->update_lock); return count; }
static ssize_t set_update_interval(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct i2c_client *client = to_i2c_client(dev); struct lm63_data *data = i2c_get_clientdata(client); unsigned long val; int err; err = kstrtoul(buf, 10, &val); if (err) return err; mutex_lock(&data->update_lock); lm63_set_convrate(client, data, SENSORS_LIMIT(val, 0, 100000)); mutex_unlock(&data->update_lock); return count; }