Re: [PATCH] platform/chrome: Use to_cros_ec_dev more broadly
Hi Gwendal, 2018-05-10 0:56 GMT+02:00 Gwendal Grignou: > Move to_cros_ec_dev macro to cros_ec.h and use it when the private ec > object is needed from device object. > > Signed-off-by: Gwendal Grignou > --- > drivers/mfd/cros_ec_dev.c | 4 ++-- > drivers/platform/chrome/cros_ec_lightbar.c | 21 +++-- > drivers/platform/chrome/cros_ec_sysfs.c| 2 -- > drivers/platform/chrome/cros_ec_vbc.c | 9 +++-- > include/linux/mfd/cros_ec.h| 2 ++ > 5 files changed, 14 insertions(+), 24 deletions(-) > > diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c > index eafd06f62a3a..cad12da7f884 100644 > --- a/drivers/mfd/cros_ec_dev.c > +++ b/drivers/mfd/cros_ec_dev.c > @@ -264,8 +264,8 @@ static const struct file_operations fops = { > > static void __remove(struct device *dev) > { > - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, > - class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > + > kfree(ec); > } > > diff --git a/drivers/platform/chrome/cros_ec_lightbar.c > b/drivers/platform/chrome/cros_ec_lightbar.c > index 6ea79d495aa2..68193bb53383 100644 > --- a/drivers/platform/chrome/cros_ec_lightbar.c > +++ b/drivers/platform/chrome/cros_ec_lightbar.c > @@ -170,8 +170,7 @@ static ssize_t version_show(struct device *dev, > struct device_attribute *attr, char *buf) > { > uint32_t version = 0, flags = 0; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > int ret; > > ret = lb_throttle(); > @@ -193,8 +192,7 @@ static ssize_t brightness_store(struct device *dev, > struct cros_ec_command *msg; > int ret; > unsigned int val; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > if (kstrtouint(buf, 0, )) > return -EINVAL; > @@ -238,8 +236,7 @@ static ssize_t led_rgb_store(struct device *dev, struct > device_attribute *attr, > { > struct ec_params_lightbar *param; > struct cros_ec_command *msg; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > unsigned int val[4]; > int ret, i = 0, j = 0, ok = 0; > > @@ -311,8 +308,7 @@ static ssize_t sequence_show(struct device *dev, > struct ec_response_lightbar *resp; > struct cros_ec_command *msg; > int ret; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > msg = alloc_lightbar_cmd_msg(ec); > if (!msg) > @@ -439,8 +435,7 @@ static ssize_t sequence_store(struct device *dev, struct > device_attribute *attr, > struct cros_ec_command *msg; > unsigned int num; > int ret, len; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > for (len = 0; len < count; len++) > if (!isalnum(buf[len])) > @@ -488,8 +483,7 @@ static ssize_t program_store(struct device *dev, struct > device_attribute *attr, > int extra_bytes, max_size, ret; > struct ec_params_lightbar *param; > struct cros_ec_command *msg; > - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, > - class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > /* > * We might need to reject the program for size reasons. The EC > @@ -599,8 +593,7 @@ static umode_t cros_ec_lightbar_attrs_are_visible(struct > kobject *kobj, > struct attribute *a, int n) > { > struct device *dev = container_of(kobj, struct device, kobj); > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > struct platform_device *pdev = to_platform_device(ec->dev); > struct cros_ec_platform *pdata = pdev->dev.platform_data; > int is_cros_ec; > diff --git a/drivers/platform/chrome/cros_ec_sysfs.c > b/drivers/platform/chrome/cros_ec_sysfs.c > index 5a6db3fe213a..f34a50121064 100644 > --- a/drivers/platform/chrome/cros_ec_sysfs.c > +++ b/drivers/platform/chrome/cros_ec_sysfs.c > @@ -34,8 +34,6 @@ > #include > #include > > -#define
Re: [PATCH] platform/chrome: Use to_cros_ec_dev more broadly
Hi Gwendal, 2018-05-10 0:56 GMT+02:00 Gwendal Grignou : > Move to_cros_ec_dev macro to cros_ec.h and use it when the private ec > object is needed from device object. > > Signed-off-by: Gwendal Grignou > --- > drivers/mfd/cros_ec_dev.c | 4 ++-- > drivers/platform/chrome/cros_ec_lightbar.c | 21 +++-- > drivers/platform/chrome/cros_ec_sysfs.c| 2 -- > drivers/platform/chrome/cros_ec_vbc.c | 9 +++-- > include/linux/mfd/cros_ec.h| 2 ++ > 5 files changed, 14 insertions(+), 24 deletions(-) > > diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c > index eafd06f62a3a..cad12da7f884 100644 > --- a/drivers/mfd/cros_ec_dev.c > +++ b/drivers/mfd/cros_ec_dev.c > @@ -264,8 +264,8 @@ static const struct file_operations fops = { > > static void __remove(struct device *dev) > { > - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, > - class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > + > kfree(ec); > } > > diff --git a/drivers/platform/chrome/cros_ec_lightbar.c > b/drivers/platform/chrome/cros_ec_lightbar.c > index 6ea79d495aa2..68193bb53383 100644 > --- a/drivers/platform/chrome/cros_ec_lightbar.c > +++ b/drivers/platform/chrome/cros_ec_lightbar.c > @@ -170,8 +170,7 @@ static ssize_t version_show(struct device *dev, > struct device_attribute *attr, char *buf) > { > uint32_t version = 0, flags = 0; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > int ret; > > ret = lb_throttle(); > @@ -193,8 +192,7 @@ static ssize_t brightness_store(struct device *dev, > struct cros_ec_command *msg; > int ret; > unsigned int val; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > if (kstrtouint(buf, 0, )) > return -EINVAL; > @@ -238,8 +236,7 @@ static ssize_t led_rgb_store(struct device *dev, struct > device_attribute *attr, > { > struct ec_params_lightbar *param; > struct cros_ec_command *msg; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > unsigned int val[4]; > int ret, i = 0, j = 0, ok = 0; > > @@ -311,8 +308,7 @@ static ssize_t sequence_show(struct device *dev, > struct ec_response_lightbar *resp; > struct cros_ec_command *msg; > int ret; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > msg = alloc_lightbar_cmd_msg(ec); > if (!msg) > @@ -439,8 +435,7 @@ static ssize_t sequence_store(struct device *dev, struct > device_attribute *attr, > struct cros_ec_command *msg; > unsigned int num; > int ret, len; > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > for (len = 0; len < count; len++) > if (!isalnum(buf[len])) > @@ -488,8 +483,7 @@ static ssize_t program_store(struct device *dev, struct > device_attribute *attr, > int extra_bytes, max_size, ret; > struct ec_params_lightbar *param; > struct cros_ec_command *msg; > - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, > - class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > > /* > * We might need to reject the program for size reasons. The EC > @@ -599,8 +593,7 @@ static umode_t cros_ec_lightbar_attrs_are_visible(struct > kobject *kobj, > struct attribute *a, int n) > { > struct device *dev = container_of(kobj, struct device, kobj); > - struct cros_ec_dev *ec = container_of(dev, > - struct cros_ec_dev, class_dev); > + struct cros_ec_dev *ec = to_cros_ec_dev(dev); > struct platform_device *pdev = to_platform_device(ec->dev); > struct cros_ec_platform *pdata = pdev->dev.platform_data; > int is_cros_ec; > diff --git a/drivers/platform/chrome/cros_ec_sysfs.c > b/drivers/platform/chrome/cros_ec_sysfs.c > index 5a6db3fe213a..f34a50121064 100644 > --- a/drivers/platform/chrome/cros_ec_sysfs.c > +++ b/drivers/platform/chrome/cros_ec_sysfs.c > @@ -34,8 +34,6 @@ > #include > #include > > -#define to_cros_ec_dev(dev) container_of(dev,
[PATCH] platform/chrome: Use to_cros_ec_dev more broadly
Move to_cros_ec_dev macro to cros_ec.h and use it when the private ec object is needed from device object. Signed-off-by: Gwendal Grignou--- drivers/mfd/cros_ec_dev.c | 4 ++-- drivers/platform/chrome/cros_ec_lightbar.c | 21 +++-- drivers/platform/chrome/cros_ec_sysfs.c| 2 -- drivers/platform/chrome/cros_ec_vbc.c | 9 +++-- include/linux/mfd/cros_ec.h| 2 ++ 5 files changed, 14 insertions(+), 24 deletions(-) diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c index eafd06f62a3a..cad12da7f884 100644 --- a/drivers/mfd/cros_ec_dev.c +++ b/drivers/mfd/cros_ec_dev.c @@ -264,8 +264,8 @@ static const struct file_operations fops = { static void __remove(struct device *dev) { - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, - class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); + kfree(ec); } diff --git a/drivers/platform/chrome/cros_ec_lightbar.c b/drivers/platform/chrome/cros_ec_lightbar.c index 6ea79d495aa2..68193bb53383 100644 --- a/drivers/platform/chrome/cros_ec_lightbar.c +++ b/drivers/platform/chrome/cros_ec_lightbar.c @@ -170,8 +170,7 @@ static ssize_t version_show(struct device *dev, struct device_attribute *attr, char *buf) { uint32_t version = 0, flags = 0; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); int ret; ret = lb_throttle(); @@ -193,8 +192,7 @@ static ssize_t brightness_store(struct device *dev, struct cros_ec_command *msg; int ret; unsigned int val; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); if (kstrtouint(buf, 0, )) return -EINVAL; @@ -238,8 +236,7 @@ static ssize_t led_rgb_store(struct device *dev, struct device_attribute *attr, { struct ec_params_lightbar *param; struct cros_ec_command *msg; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); unsigned int val[4]; int ret, i = 0, j = 0, ok = 0; @@ -311,8 +308,7 @@ static ssize_t sequence_show(struct device *dev, struct ec_response_lightbar *resp; struct cros_ec_command *msg; int ret; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); msg = alloc_lightbar_cmd_msg(ec); if (!msg) @@ -439,8 +435,7 @@ static ssize_t sequence_store(struct device *dev, struct device_attribute *attr, struct cros_ec_command *msg; unsigned int num; int ret, len; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); for (len = 0; len < count; len++) if (!isalnum(buf[len])) @@ -488,8 +483,7 @@ static ssize_t program_store(struct device *dev, struct device_attribute *attr, int extra_bytes, max_size, ret; struct ec_params_lightbar *param; struct cros_ec_command *msg; - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, - class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); /* * We might need to reject the program for size reasons. The EC @@ -599,8 +593,7 @@ static umode_t cros_ec_lightbar_attrs_are_visible(struct kobject *kobj, struct attribute *a, int n) { struct device *dev = container_of(kobj, struct device, kobj); - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); struct platform_device *pdev = to_platform_device(ec->dev); struct cros_ec_platform *pdata = pdev->dev.platform_data; int is_cros_ec; diff --git a/drivers/platform/chrome/cros_ec_sysfs.c b/drivers/platform/chrome/cros_ec_sysfs.c index 5a6db3fe213a..f34a50121064 100644 --- a/drivers/platform/chrome/cros_ec_sysfs.c +++ b/drivers/platform/chrome/cros_ec_sysfs.c @@ -34,8 +34,6 @@ #include #include -#define to_cros_ec_dev(dev) container_of(dev, struct cros_ec_dev, class_dev) - /* Accessor functions */ static ssize_t reboot_show(struct device *dev, diff --git a/drivers/platform/chrome/cros_ec_vbc.c b/drivers/platform/chrome/cros_ec_vbc.c index 6d38e6b08334..5356f26bc022 100644 ---
[PATCH] platform/chrome: Use to_cros_ec_dev more broadly
Move to_cros_ec_dev macro to cros_ec.h and use it when the private ec object is needed from device object. Signed-off-by: Gwendal Grignou --- drivers/mfd/cros_ec_dev.c | 4 ++-- drivers/platform/chrome/cros_ec_lightbar.c | 21 +++-- drivers/platform/chrome/cros_ec_sysfs.c| 2 -- drivers/platform/chrome/cros_ec_vbc.c | 9 +++-- include/linux/mfd/cros_ec.h| 2 ++ 5 files changed, 14 insertions(+), 24 deletions(-) diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c index eafd06f62a3a..cad12da7f884 100644 --- a/drivers/mfd/cros_ec_dev.c +++ b/drivers/mfd/cros_ec_dev.c @@ -264,8 +264,8 @@ static const struct file_operations fops = { static void __remove(struct device *dev) { - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, - class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); + kfree(ec); } diff --git a/drivers/platform/chrome/cros_ec_lightbar.c b/drivers/platform/chrome/cros_ec_lightbar.c index 6ea79d495aa2..68193bb53383 100644 --- a/drivers/platform/chrome/cros_ec_lightbar.c +++ b/drivers/platform/chrome/cros_ec_lightbar.c @@ -170,8 +170,7 @@ static ssize_t version_show(struct device *dev, struct device_attribute *attr, char *buf) { uint32_t version = 0, flags = 0; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); int ret; ret = lb_throttle(); @@ -193,8 +192,7 @@ static ssize_t brightness_store(struct device *dev, struct cros_ec_command *msg; int ret; unsigned int val; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); if (kstrtouint(buf, 0, )) return -EINVAL; @@ -238,8 +236,7 @@ static ssize_t led_rgb_store(struct device *dev, struct device_attribute *attr, { struct ec_params_lightbar *param; struct cros_ec_command *msg; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); unsigned int val[4]; int ret, i = 0, j = 0, ok = 0; @@ -311,8 +308,7 @@ static ssize_t sequence_show(struct device *dev, struct ec_response_lightbar *resp; struct cros_ec_command *msg; int ret; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); msg = alloc_lightbar_cmd_msg(ec); if (!msg) @@ -439,8 +435,7 @@ static ssize_t sequence_store(struct device *dev, struct device_attribute *attr, struct cros_ec_command *msg; unsigned int num; int ret, len; - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); for (len = 0; len < count; len++) if (!isalnum(buf[len])) @@ -488,8 +483,7 @@ static ssize_t program_store(struct device *dev, struct device_attribute *attr, int extra_bytes, max_size, ret; struct ec_params_lightbar *param; struct cros_ec_command *msg; - struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, - class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); /* * We might need to reject the program for size reasons. The EC @@ -599,8 +593,7 @@ static umode_t cros_ec_lightbar_attrs_are_visible(struct kobject *kobj, struct attribute *a, int n) { struct device *dev = container_of(kobj, struct device, kobj); - struct cros_ec_dev *ec = container_of(dev, - struct cros_ec_dev, class_dev); + struct cros_ec_dev *ec = to_cros_ec_dev(dev); struct platform_device *pdev = to_platform_device(ec->dev); struct cros_ec_platform *pdata = pdev->dev.platform_data; int is_cros_ec; diff --git a/drivers/platform/chrome/cros_ec_sysfs.c b/drivers/platform/chrome/cros_ec_sysfs.c index 5a6db3fe213a..f34a50121064 100644 --- a/drivers/platform/chrome/cros_ec_sysfs.c +++ b/drivers/platform/chrome/cros_ec_sysfs.c @@ -34,8 +34,6 @@ #include #include -#define to_cros_ec_dev(dev) container_of(dev, struct cros_ec_dev, class_dev) - /* Accessor functions */ static ssize_t reboot_show(struct device *dev, diff --git a/drivers/platform/chrome/cros_ec_vbc.c b/drivers/platform/chrome/cros_ec_vbc.c index 6d38e6b08334..5356f26bc022 100644 ---