diff options
Diffstat (limited to 'drivers/hwmon/sht15.c')
| -rw-r--r-- | drivers/hwmon/sht15.c | 65 |
1 files changed, 26 insertions, 39 deletions
diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c index c878242f3486..3d55047e9baf 100644 --- a/drivers/hwmon/sht15.c +++ b/drivers/hwmon/sht15.c @@ -10,7 +10,7 @@ * * Copyright (c) 2007 Wouter Horre * - * For further information, see the Documentation/hwmon/sht15 file. + * For further information, see the Documentation/hwmon/sht15.rst file. */ #include <linux/interrupt.h> @@ -668,7 +668,7 @@ static inline int sht15_calc_humid(struct sht15_data *data) } /** - * sht15_show_status() - show status information in sysfs + * sht15_status_show() - show status information in sysfs * @dev: device. * @attr: device attribute. * @buf: sysfs buffer where information is written to. @@ -677,9 +677,8 @@ static inline int sht15_calc_humid(struct sht15_data *data) * and heater_enable sysfs attributes. * Returns number of bytes written into buffer, negative errno on error. */ -static ssize_t sht15_show_status(struct device *dev, - struct device_attribute *attr, - char *buf) +static ssize_t sht15_status_show(struct device *dev, + struct device_attribute *attr, char *buf) { int ret; struct sht15_data *data = dev_get_drvdata(dev); @@ -691,7 +690,7 @@ static ssize_t sht15_show_status(struct device *dev, } /** - * sht15_store_heater() - change heater state via sysfs + * sht15_status_store() - change heater state via sysfs * @dev: device. * @attr: device attribute. * @buf: sysfs buffer to read the new heater state from. @@ -700,7 +699,7 @@ static ssize_t sht15_show_status(struct device *dev, * Will be called on write access to heater_enable sysfs attribute. * Returns number of bytes actually decoded, negative errno on error. */ -static ssize_t sht15_store_heater(struct device *dev, +static ssize_t sht15_status_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { @@ -726,7 +725,7 @@ static ssize_t sht15_store_heater(struct device *dev, } /** - * sht15_show_temp() - show temperature measurement value in sysfs + * sht15_temp_show() - show temperature measurement value in sysfs * @dev: device. * @attr: device attribute. * @buf: sysfs buffer where measurement values are written to. @@ -734,9 +733,8 @@ static ssize_t sht15_store_heater(struct device *dev, * Will be called on read access to temp1_input sysfs attribute. * Returns number of bytes written into buffer, negative errno on error. */ -static ssize_t sht15_show_temp(struct device *dev, - struct device_attribute *attr, - char *buf) +static ssize_t sht15_temp_show(struct device *dev, + struct device_attribute *attr, char *buf) { int ret; struct sht15_data *data = dev_get_drvdata(dev); @@ -749,7 +747,7 @@ static ssize_t sht15_show_temp(struct device *dev, } /** - * sht15_show_humidity() - show humidity measurement value in sysfs + * sht15_humidity_show() - show humidity measurement value in sysfs * @dev: device. * @attr: device attribute. * @buf: sysfs buffer where measurement values are written to. @@ -757,9 +755,8 @@ static ssize_t sht15_show_temp(struct device *dev, * Will be called on read access to humidity1_input sysfs attribute. * Returns number of bytes written into buffer, negative errno on error. */ -static ssize_t sht15_show_humidity(struct device *dev, - struct device_attribute *attr, - char *buf) +static ssize_t sht15_humidity_show(struct device *dev, + struct device_attribute *attr, char *buf) { int ret; struct sht15_data *data = dev_get_drvdata(dev); @@ -777,16 +774,13 @@ static ssize_t name_show(struct device *dev, return sprintf(buf, "%s\n", pdev->name); } -static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, - sht15_show_temp, NULL, 0); -static SENSOR_DEVICE_ATTR(humidity1_input, S_IRUGO, - sht15_show_humidity, NULL, 0); -static SENSOR_DEVICE_ATTR(temp1_fault, S_IRUGO, sht15_show_status, NULL, - SHT15_STATUS_LOW_BATTERY); -static SENSOR_DEVICE_ATTR(humidity1_fault, S_IRUGO, sht15_show_status, NULL, - SHT15_STATUS_LOW_BATTERY); -static SENSOR_DEVICE_ATTR(heater_enable, S_IRUGO | S_IWUSR, sht15_show_status, - sht15_store_heater, SHT15_STATUS_HEATER); +static SENSOR_DEVICE_ATTR_RO(temp1_input, sht15_temp, 0); +static SENSOR_DEVICE_ATTR_RO(humidity1_input, sht15_humidity, 0); +static SENSOR_DEVICE_ATTR_RO(temp1_fault, sht15_status, + SHT15_STATUS_LOW_BATTERY); +static SENSOR_DEVICE_ATTR_RO(humidity1_fault, sht15_status, + SHT15_STATUS_LOW_BATTERY); +static SENSOR_DEVICE_ATTR_RW(heater_enable, sht15_status, SHT15_STATUS_HEATER); static DEVICE_ATTR_RO(name); static struct attribute *sht15_attrs[] = { &sensor_dev_attr_temp1_input.dev_attr.attr, @@ -1023,29 +1017,22 @@ err_release_reg: return ret; } -static int sht15_remove(struct platform_device *pdev) +static void sht15_remove(struct platform_device *pdev) { struct sht15_data *data = platform_get_drvdata(pdev); + int ret; - /* - * Make sure any reads from the device are done and - * prevent new ones beginning - */ - mutex_lock(&data->read_lock); - if (sht15_soft_reset(data)) { - mutex_unlock(&data->read_lock); - return -EFAULT; - } hwmon_device_unregister(data->hwmon_dev); sysfs_remove_group(&pdev->dev.kobj, &sht15_attr_group); + + ret = sht15_soft_reset(data); + if (ret) + dev_err(&pdev->dev, "Failed to reset device (%pe)\n", ERR_PTR(ret)); + if (!IS_ERR(data->reg)) { regulator_unregister_notifier(data->reg, &data->nb); regulator_disable(data->reg); } - - mutex_unlock(&data->read_lock); - - return 0; } static const struct platform_device_id sht15_device_ids[] = { |
