On Wed, Dec 3, 2014 at 5:34 PM, Fabio Estevam <[email protected]> wrote:
> From: Fabio Estevam <[email protected]>
>
> Since commit a43f2cbbb009f96 ("leds: leds-gpio: Make use of device property
> API") it is no longer possible to register multiple gpio leds without passing
> the 'label' property.
>
> According to Documentation/devicetree/bindings/leds/common.txt:
>
> "Optional properties for child nodes:
> - label : The label for this LED. If omitted, the label is
> taken from the node name (excluding the unit address)."
>
> So retrieve the node name when the 'label' property is absent to keep the old
> behaviour and fix this regression.
>
> Reported-by: Jean-Michel Hautbois <[email protected]>
> Signed-off-by: Fabio Estevam <[email protected]>
> ---
> drivers/leds/leds-gpio.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
> index fd53968..a635330 100644
> --- a/drivers/leds/leds-gpio.c
> +++ b/drivers/leds/leds-gpio.c
> @@ -170,6 +170,7 @@ static struct gpio_leds_priv *gpio_leds_create(struct
> platform_device *pdev)
> struct fwnode_handle *child;
> struct gpio_leds_priv *priv;
> int count, ret;
> + struct device_node *np;
>
> count = device_get_child_node_count(dev);
> if (!count)
> @@ -189,7 +190,12 @@ static struct gpio_leds_priv *gpio_leds_create(struct
> platform_device *pdev)
> goto err;
> }
>
> - fwnode_property_read_string(child, "label", &led.name);
> + np = of_node(child);
> +
> + if (fwnode_property_present(child, "label"))
> + fwnode_property_read_string(child, "label",
> &led.name);
> + else
> + led.name = np->name;
np will be NULL when ACPI is used and that will break this driver.
Instead you need to use the construct:
fwnode_property_read_string(child, "label", &led.name);
if (IS_ENABLED(CONFIG_OF) && !led.name && np)
led.name = np->name;
if (!led.name)
error;
> fwnode_property_read_string(child, "linux,default-trigger",
> &led.default_trigger);
>
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-leds" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html