Re: [PATCH] leds: gpio: Fix uninitialized gpio label for fwnode based probe
From: Pavel Machek
Date: Sat Dec 21 2019 - 13:52:02 EST
Hi!
> When switching to using generic LED name composition mechanism via
> devm_led_classdev_register_ext() API the part of code initializing
> struct gpio_led's template name property was removed alongside.
> It was however overlooked that the property was also passed to
> devm_fwnode_get_gpiod_from_child() in place of "label" parameter,
> which when set to NULL, results in gpio label being initialized to '?'.
>
> It could be observed in debugfs and failed to properly identify
> gpio association with LED consumer.
>
> Fix this shortcoming by updating the GPIO label after the LED is
> registered and its final name is known.
>
> Fixes: d7235f5feaa0 ("leds: gpio: Use generic support for composing LED names")
> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Cc: Pavel Machek <pavel@xxxxxx>
> Cc: Russell King <linux@xxxxxxxxxxxxxxx>
> Signed-off-by: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx>
Patch looks good, except:
> @@ -151,9 +151,14 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
> struct gpio_led led = {};
> const char *state = NULL;
>
> + /**
> + * Acquire gpiod from DT with uninitialized label, which
> + * will be updated after LED class device is registered,
> + * Only then the final LED name is known.
> + */
> led.gpiod = devm_fwnode_get_gpiod_from_child(dev, NULL, child,
> GPIOD_ASIS,
> - led.name);
> + NULL);
This is not linuxdoc, so comment should beging with /* AFAICT.
I'll probably hand-edit the patch.
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature