2019-10-03 08:29:09

by Jean-Jacques Hiblot

[permalink] [raw]
Subject: [PATCH v8 1/5] leds: populate the device's of_node when possible

If initialization data is available and its fwnode is actually a of_node,
store this information in the led device's structure. This will allow the
device to use or provide OF-based API such (devm_xxx).

Signed-off-by: Jean-Jacques Hiblot <[email protected]>
---
drivers/leds/led-class.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index 647b1263c579..c2167b66b61f 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -276,8 +276,11 @@ int led_classdev_register_ext(struct device *parent,
mutex_unlock(&led_cdev->led_access);
return PTR_ERR(led_cdev->dev);
}
- if (init_data && init_data->fwnode)
+ if (init_data && init_data->fwnode) {
led_cdev->dev->fwnode = init_data->fwnode;
+ if (is_of_node(init_data->fwnode))
+ led_cdev->dev->of_node = to_of_node(init_data->fwnode);
+ }

if (ret)
dev_warn(parent, "Led %s renamed to %s due to name collision",
--
2.17.1


2019-10-04 21:10:15

by Jacek Anaszewski

[permalink] [raw]
Subject: Re: [PATCH v8 1/5] leds: populate the device's of_node when possible

Hi Jean,

On 10/3/19 10:28 AM, Jean-Jacques Hiblot wrote:
> If initialization data is available and its fwnode is actually a of_node,
> store this information in the led device's structure. This will allow the
> device to use or provide OF-based API such (devm_xxx).
>
> Signed-off-by: Jean-Jacques Hiblot <[email protected]>
> ---
> drivers/leds/led-class.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
> index 647b1263c579..c2167b66b61f 100644
> --- a/drivers/leds/led-class.c
> +++ b/drivers/leds/led-class.c
> @@ -276,8 +276,11 @@ int led_classdev_register_ext(struct device *parent,
> mutex_unlock(&led_cdev->led_access);
> return PTR_ERR(led_cdev->dev);
> }
> - if (init_data && init_data->fwnode)
> + if (init_data && init_data->fwnode) {
> led_cdev->dev->fwnode = init_data->fwnode;
> + if (is_of_node(init_data->fwnode))

This check is made inside to_of_node() macro so here we
need only below assignment.

> + led_cdev->dev->of_node = to_of_node(init_data->fwnode);
> + }
>
> if (ret)
> dev_warn(parent, "Led %s renamed to %s due to name collision",
>

--
Best regards,
Jacek Anaszewski