Messages in this thread | | | From | Enric Balletbo Serra <> | Date | Wed, 30 May 2018 18:43:27 +0200 | Subject | Re: [PATCH v2] platform/chrome: Use to_cros_ec_dev more broadly |
| |
Hi Gwendal,
2018-05-30 18:04 GMT+02:00 Gwendal Grignou <gwendal@chromium.org>: > 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 <gwendal@chromium.org> > --- > Change since v1: > Remove changes in cros_ec_dev.c to avoid inter-dependencies. > > 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 ++ > 4 files changed, 12 insertions(+), 22 deletions(-) > > 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, &val)) > 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 <linux/types.h> > #include <linux/uaccess.h> > > -#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 > --- a/drivers/platform/chrome/cros_ec_vbc.c > +++ b/drivers/platform/chrome/cros_ec_vbc.c > @@ -29,8 +29,7 @@ static ssize_t vboot_context_read(struct file *filp, struct kobject *kobj, > loff_t pos, size_t count) > { > 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 cros_ec_device *ecdev = ec->ec_dev; > struct ec_params_vbnvcontext *params; > struct cros_ec_command *msg; > @@ -70,8 +69,7 @@ static ssize_t vboot_context_write(struct file *filp, struct kobject *kobj, > loff_t pos, size_t count) > { > 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 cros_ec_device *ecdev = ec->ec_dev; > struct ec_params_vbnvcontext *params; > struct cros_ec_command *msg; > @@ -111,8 +109,7 @@ static umode_t cros_ec_vbc_is_visible(struct kobject *kobj, > struct bin_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 device_node *np = ec->ec_dev->dev->of_node; > > if (IS_ENABLED(CONFIG_OF) && np) { > diff --git a/include/linux/mfd/cros_ec.h b/include/linux/mfd/cros_ec.h > index 4ff0cec979b0..4270972adb94 100644 > --- a/include/linux/mfd/cros_ec.h > +++ b/include/linux/mfd/cros_ec.h > @@ -197,6 +197,8 @@ struct cros_ec_dev { > u32 features[2]; > }; > > +#define to_cros_ec_dev(dev) container_of(dev, struct cros_ec_dev, class_dev) > + > /** > * cros_ec_suspend - Handle a suspend operation for the ChromeOS EC device > * > -- > 2.17.0.921.gf22659ad46-goog >
The patch looks good to me.
Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Thanks, Enric
| |