2019-11-13 15:26:20

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH v2] i2c: core: Use DEVICE_ATTR_*() helper macros

Convert the i2c core sysfs attributes from DEVICE_ATTR() to
DEVICE_ATTR_*(), to reduce boilerplate.
This requires renaming some functions.

Although no suitable macro exists for the delete_device attribute,
rename i2c_sysfs_delete_device() to delete_device_store() for
consistency.

Signed-off-by: Geert Uytterhoeven <[email protected]>
Reviewed-by: Luca Ceresoli <[email protected]>
---
v2:
- s/DEVICE_ATTR_RW/DEVICE_ATTR_*/ in summary and description,
- Add Reviewed-by.
---
drivers/i2c/i2c-core-base.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index 6a5183cffdfc3e82..c87bf5bcab3f1349 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -449,15 +449,15 @@ static void i2c_client_dev_release(struct device *dev)
}

static ssize_t
-show_name(struct device *dev, struct device_attribute *attr, char *buf)
+name_show(struct device *dev, struct device_attribute *attr, char *buf)
{
return sprintf(buf, "%s\n", dev->type == &i2c_client_type ?
to_i2c_client(dev)->name : to_i2c_adapter(dev)->name);
}
-static DEVICE_ATTR(name, S_IRUGO, show_name, NULL);
+static DEVICE_ATTR_RO(name);

static ssize_t
-show_modalias(struct device *dev, struct device_attribute *attr, char *buf)
+modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct i2c_client *client = to_i2c_client(dev);
int len;
@@ -472,7 +472,7 @@ show_modalias(struct device *dev, struct device_attribute *attr, char *buf)

return sprintf(buf, "%s%s\n", I2C_MODULE_PREFIX, client->name);
}
-static DEVICE_ATTR(modalias, S_IRUGO, show_modalias, NULL);
+static DEVICE_ATTR_RO(modalias);

static struct attribute *i2c_dev_attrs[] = {
&dev_attr_name.attr,
@@ -1039,8 +1039,8 @@ EXPORT_SYMBOL_GPL(i2c_adapter_depth);
* the user to provide incorrect parameters.
*/
static ssize_t
-i2c_sysfs_new_device(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count)
+new_device_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
{
struct i2c_adapter *adap = to_i2c_adapter(dev);
struct i2c_board_info info;
@@ -1095,7 +1095,7 @@ i2c_sysfs_new_device(struct device *dev, struct device_attribute *attr,

return count;
}
-static DEVICE_ATTR(new_device, S_IWUSR, NULL, i2c_sysfs_new_device);
+static DEVICE_ATTR_WO(new_device);

/*
* And of course let the users delete the devices they instantiated, if
@@ -1107,8 +1107,8 @@ static DEVICE_ATTR(new_device, S_IWUSR, NULL, i2c_sysfs_new_device);
* the user to delete the wrong device.
*/
static ssize_t
-i2c_sysfs_delete_device(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count)
+delete_device_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
{
struct i2c_adapter *adap = to_i2c_adapter(dev);
struct i2c_client *client, *next;
@@ -1151,7 +1151,7 @@ i2c_sysfs_delete_device(struct device *dev, struct device_attribute *attr,
return res;
}
static DEVICE_ATTR_IGNORE_LOCKDEP(delete_device, S_IWUSR, NULL,
- i2c_sysfs_delete_device);
+ delete_device_store);

static struct attribute *i2c_adapter_attrs[] = {
&dev_attr_name.attr,
--
2.17.1


2019-11-26 13:09:52

by Kieran Bingham

[permalink] [raw]
Subject: Re: [PATCH v2] i2c: core: Use DEVICE_ATTR_*() helper macros

Hi Geert,

On 13/11/2019 15:23, Geert Uytterhoeven wrote:
> Convert the i2c core sysfs attributes from DEVICE_ATTR() to
> DEVICE_ATTR_*(), to reduce boilerplate.
> This requires renaming some functions.

Seems a nice cleanup.


> Although no suitable macro exists for the delete_device attribute,
> rename i2c_sysfs_delete_device() to delete_device_store() for
> consistency.
>
> Signed-off-by: Geert Uytterhoeven <[email protected]>
> Reviewed-by: Luca Ceresoli <[email protected]>

Reviewed-by: Kieran Bingham <[email protected]>


> ---
> v2:
> - s/DEVICE_ATTR_RW/DEVICE_ATTR_*/ in summary and description,
> - Add Reviewed-by.
> ---
> drivers/i2c/i2c-core-base.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
> index 6a5183cffdfc3e82..c87bf5bcab3f1349 100644
> --- a/drivers/i2c/i2c-core-base.c
> +++ b/drivers/i2c/i2c-core-base.c
> @@ -449,15 +449,15 @@ static void i2c_client_dev_release(struct device *dev)
> }
>
> static ssize_t
> -show_name(struct device *dev, struct device_attribute *attr, char *buf)
> +name_show(struct device *dev, struct device_attribute *attr, char *buf)
> {
> return sprintf(buf, "%s\n", dev->type == &i2c_client_type ?
> to_i2c_client(dev)->name : to_i2c_adapter(dev)->name);
> }
> -static DEVICE_ATTR(name, S_IRUGO, show_name, NULL);
> +static DEVICE_ATTR_RO(name);
>
> static ssize_t
> -show_modalias(struct device *dev, struct device_attribute *attr, char *buf)
> +modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
> {
> struct i2c_client *client = to_i2c_client(dev);
> int len;
> @@ -472,7 +472,7 @@ show_modalias(struct device *dev, struct device_attribute *attr, char *buf)
>
> return sprintf(buf, "%s%s\n", I2C_MODULE_PREFIX, client->name);
> }
> -static DEVICE_ATTR(modalias, S_IRUGO, show_modalias, NULL);
> +static DEVICE_ATTR_RO(modalias);
>
> static struct attribute *i2c_dev_attrs[] = {
> &dev_attr_name.attr,
> @@ -1039,8 +1039,8 @@ EXPORT_SYMBOL_GPL(i2c_adapter_depth);
> * the user to provide incorrect parameters.
> */
> static ssize_t
> -i2c_sysfs_new_device(struct device *dev, struct device_attribute *attr,
> - const char *buf, size_t count)
> +new_device_store(struct device *dev, struct device_attribute *attr,
> + const char *buf, size_t count)
> {
> struct i2c_adapter *adap = to_i2c_adapter(dev);
> struct i2c_board_info info;
> @@ -1095,7 +1095,7 @@ i2c_sysfs_new_device(struct device *dev, struct device_attribute *attr,
>
> return count;
> }
> -static DEVICE_ATTR(new_device, S_IWUSR, NULL, i2c_sysfs_new_device);
> +static DEVICE_ATTR_WO(new_device);
>
> /*
> * And of course let the users delete the devices they instantiated, if
> @@ -1107,8 +1107,8 @@ static DEVICE_ATTR(new_device, S_IWUSR, NULL, i2c_sysfs_new_device);
> * the user to delete the wrong device.
> */
> static ssize_t
> -i2c_sysfs_delete_device(struct device *dev, struct device_attribute *attr,
> - const char *buf, size_t count)
> +delete_device_store(struct device *dev, struct device_attribute *attr,
> + const char *buf, size_t count)
> {
> struct i2c_adapter *adap = to_i2c_adapter(dev);
> struct i2c_client *client, *next;
> @@ -1151,7 +1151,7 @@ i2c_sysfs_delete_device(struct device *dev, struct device_attribute *attr,
> return res;
> }
> static DEVICE_ATTR_IGNORE_LOCKDEP(delete_device, S_IWUSR, NULL,
> - i2c_sysfs_delete_device);
> + delete_device_store);
>
> static struct attribute *i2c_adapter_attrs[] = {
> &dev_attr_name.attr,
>