platform/chrome: Use to_cros_ec_dev more broadly
authorGwendal Grignou <gwendal@chromium.org>
Wed, 30 May 2018 16:04:13 +0000 (09:04 -0700)
committerBenson Leung <bleung@chromium.org>
Wed, 30 May 2018 18:53:40 +0000 (11:53 -0700)
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>
Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Benson Leung <bleung@chromium.org>
drivers/platform/chrome/cros_ec_lightbar.c
drivers/platform/chrome/cros_ec_sysfs.c
drivers/platform/chrome/cros_ec_vbc.c
include/linux/mfd/cros_ec.h

index 6ea79d495aa21510e65b01b21a1bd52d02e334b6..68193bb53383687ebcb75e35df3c017181dabec2 100644 (file)
@@ -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;
index 5a6db3fe213ada711e977223deadc3086309260c..f34a50121064f13e5d9bdc6bdecc8e89df82670e 100644 (file)
@@ -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,
index 6d38e6b08334f98d9ffacf6eee19a80fa6a2cbd3..5356f26bc022311a42c51078251b333e01889c40 100644 (file)
@@ -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) {
index 2d4e23c9ea0af54e19b40dab0942b1c610489dd7..f09e9cf2e4ab9a85a378c67202e5f4df8e008969 100644 (file)
@@ -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
  *