Re: [PATCH 2/5] leds: leds-core: Implement the retain-state-shutdown property

From: Andrew Jeffery
Date: Thu May 13 2021 - 00:52:04 EST




On Fri, 30 Apr 2021, at 06:19, Eddie James wrote:
> Read the retain-state-shutdown device tree property to set the
> existing LED_RETAIN_AT_SHUTDOWN flag. Then check the flag when
> unregistering, and if set, don't set the brightness to OFF. This
> is useful for systems that want to keep the HW state of the LED
> across reboots.
>
> Signed-off-by: Eddie James <eajames@xxxxxxxxxxxxx>
> ---
> drivers/leds/led-class.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
> index 2e495ff67856..f2f29318d312 100644
> --- a/drivers/leds/led-class.c
> +++ b/drivers/leds/led-class.c
> @@ -354,10 +354,15 @@ int led_classdev_register_ext(struct device *parent,
> if (ret < 0)
> return ret;
>
> - if (init_data->fwnode)
> + if (init_data->fwnode) {
> fwnode_property_read_string(init_data->fwnode,
> "linux,default-trigger",
> &led_cdev->default_trigger);
> +
> + if (fwnode_property_present(init_data->fwnode,
> + "retain-state-shutdown"))
> + led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN;

This is what we need, but I notice the pca955x driver is calling
through devm_led_classdev_register() which passes NULL through
init_data. So we won't get the result we want from this series as I
understand it.

Andrew