]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
leds: Switch to use fwnode instead of be stuck with OF one
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 22 Aug 2019 15:19:28 +0000 (18:19 +0300)
committerJacek Anaszewski <jacek.anaszewski@gmail.com>
Fri, 23 Aug 2019 21:39:37 +0000 (23:39 +0200)
There is no need to be stuck with OF node when we may use agnostic
firmware node instead.

It allows users to get property if needed independently of provider.

Note, some OF parts are left because %pfw [1] is in progress.

[1]: https://lore.kernel.org/patchwork/cover/1054863/

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
drivers/leds/led-class.c
drivers/leds/led-core.c

index d231240c2047b5ad300636ef5b609bc4c4837bd7..052c7571e1888eaf4345c858e684a79f8c60e4e0 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/leds.h>
 #include <linux/list.h>
 #include <linux/module.h>
-#include <linux/of.h>
+#include <linux/property.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/timer.h>
@@ -277,7 +277,7 @@ int led_classdev_register_ext(struct device *parent,
                return PTR_ERR(led_cdev->dev);
        }
        if (init_data && init_data->fwnode)
-               led_cdev->dev->of_node = to_of_node(init_data->fwnode);
+               led_cdev->dev->fwnode = init_data->fwnode;
 
        if (ret)
                dev_warn(parent, "Led %s renamed to %s due to name collision",
index f0c1c403f6784f9ced4e009875cb9911a9d1551a..f1f718dbe0f873ebf72ac0ff10a0e1db8ab01496 100644 (file)
@@ -324,14 +324,11 @@ EXPORT_SYMBOL_GPL(led_update_brightness);
 
 u32 *led_get_default_pattern(struct led_classdev *led_cdev, unsigned int *size)
 {
-       struct device_node *np = dev_of_node(led_cdev->dev);
+       struct fwnode_handle *fwnode = led_cdev->dev->fwnode;
        u32 *pattern;
        int count;
 
-       if (!np)
-               return NULL;
-
-       count = of_property_count_u32_elems(np, "led-pattern");
+       count = fwnode_property_count_u32(fwnode, "led-pattern");
        if (count < 0)
                return NULL;
 
@@ -339,7 +336,7 @@ u32 *led_get_default_pattern(struct led_classdev *led_cdev, unsigned int *size)
        if (!pattern)
                return NULL;
 
-       if (of_property_read_u32_array(np, "led-pattern", pattern, count)) {
+       if (fwnode_property_read_u32_array(fwnode, "led-pattern", pattern, count)) {
                kfree(pattern);
                return NULL;
        }