Re: [PATCH 1/3] hwmon: (lm90) Create optional attributes with sysfs_create_group

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Guenter,

On Sat, 15 Feb 2014 17:26:33 -0800, Guenter Roeck wrote:
> With the new hwmon API, all attributes have to be created as groups.
> Use sysfs_create_group and sysfs_remove_group instead of device_create_file
> and device_remove_file to prepare for the new API.
> 
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> ---
>  drivers/hwmon/lm90.c |   27 ++++++++++++++++++++++-----
>  1 file changed, 22 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
> index 701e952..c3bb771 100644
> --- a/drivers/hwmon/lm90.c
> +++ b/drivers/hwmon/lm90.c
> @@ -1057,6 +1057,15 @@ static const struct attribute_group lm90_group = {
>  	.attrs = lm90_attributes,
>  };
>  
> +static struct attribute *lm90_temp2_offset_attrs[] = {

Other groups in this driver use the _attributes suffix, please do the
same for new groups for consistency.

> +	&sensor_dev_attr_temp2_offset.dev_attr.attr,
> +	NULL
> +};
> +
> +static const struct attribute_group lm90_temp2_offset_group = {
> +	.attrs = lm90_temp2_offset_attrs,
> +};
> +
>  /*
>   * Additional attributes for devices with emergency sensors
>   */
> @@ -1174,6 +1183,15 @@ static ssize_t set_pec(struct device *dev, struct device_attribute *dummy,
>  
>  static DEVICE_ATTR(pec, S_IWUSR | S_IRUGO, show_pec, set_pec);
>  
> +static struct attribute *lm90_pec_attrs[] = {
> +	&dev_attr_pec.attr,
> +	NULL
> +};
> +
> +static const struct attribute_group lm90_pec_group = {
> +	.attrs = lm90_pec_attrs,
> +};

I am worried about this. Later in this patch set you'll move the "pec"
attribute from the i2c device to the hwmon class device. However this
attribute is very SMBus-specific, and has nothing to do with hwmon. I
don't think it makes sense to move this attribute, it should stay with
the i2c device. Non-hwmon i2c device drivers could implement it too.

> +
>  /*
>   * Real code
>   */
> @@ -1404,8 +1422,8 @@ static void lm90_remove_files(struct i2c_client *client, struct lm90_data *data)
>  	if (data->flags & LM90_HAVE_EMERGENCY)
>  		sysfs_remove_group(&dev->kobj, &lm90_emergency_group);
>  	if (data->flags & LM90_HAVE_OFFSET)
> -		device_remove_file(dev, &sensor_dev_attr_temp2_offset.dev_attr);
> -	device_remove_file(dev, &dev_attr_pec);
> +		sysfs_remove_group(&dev->kobj, &lm90_temp2_offset_group);
> +	sysfs_remove_group(&dev->kobj, &lm90_pec_group);
>  	sysfs_remove_group(&dev->kobj, &lm90_group);
>  }
>  
> @@ -1569,13 +1587,12 @@ static int lm90_probe(struct i2c_client *client,
>  	if (err)
>  		goto exit_restore;
>  	if (client->flags & I2C_CLIENT_PEC) {
> -		err = device_create_file(dev, &dev_attr_pec);
> +		err = sysfs_create_group(&dev->kobj, &lm90_pec_group);
>  		if (err)
>  			goto exit_remove_files;
>  	}
>  	if (data->flags & LM90_HAVE_OFFSET) {
> -		err = device_create_file(dev,
> -					&sensor_dev_attr_temp2_offset.dev_attr);
> +		err = sysfs_create_group(&dev->kobj, &lm90_temp2_offset_group);
>  		if (err)
>  			goto exit_remove_files;
>  	}


-- 
Jean Delvare
Suse L3 Support

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux