Re: [PATCH 4/4] leds: trigger: Add pattern initialization from Device Tree

From: Krzysztof Kozlowski
Date: Mon Dec 10 2018 - 03:35:01 EST


On Sun, 9 Dec 2018 at 09:17, Pavel Machek <pavel@xxxxxx> wrote:
>
> On Fri 2018-12-07 13:32:54, Krzysztof Kozlowski wrote:
> > Allow initialization of pattern used in pattern trigger from Device Tree
> > property.
> >
> > This is especially useful for embedded systems where the pattern trigger
> > would be used to indicate the process of boot status in a nice,
> > user-friendly blinking way. This initialization pattern will be used
> > till user-space is brought up and sets its own pattern, indicating the
> > boot status is for example finished.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> > ---
> > drivers/leds/trigger/ledtrig-pattern.c | 18 ++++++++++++++++++
> > 1 file changed, 18 insertions(+)
> >
> > diff --git a/drivers/leds/trigger/ledtrig-pattern.c b/drivers/leds/trigger/ledtrig-pattern.c
> > index 1870cf87afe1..96309d3bc43c 100644
> > --- a/drivers/leds/trigger/ledtrig-pattern.c
> > +++ b/drivers/leds/trigger/ledtrig-pattern.c
> > @@ -11,6 +11,7 @@
> > #include <linux/leds.h>
> > #include <linux/module.h>
> > #include <linux/mutex.h>
> > +#include <linux/of.h>
> > #include <linux/slab.h>
> > #include <linux/timer.h>
> >
> > @@ -331,6 +332,21 @@ static const struct attribute_group *pattern_trig_groups[] = {
> > NULL,
> > };
> >
> > +static void pattern_init(struct led_classdev *led_cdev)
> > +{
> > + struct device_node *np = dev_of_node(led_cdev->dev);
> > + const char *pattern;
> > +
> > + if (!np)
> > + return;
> > +
> > + if (!of_property_read_string(np, "linux,trigger-pattern", &pattern)) {
> > + if (strlen(pattern))
> > + pattern_trig_store_patterns(led_cdev, pattern,
> > + strlen(pattern), false);
> > + }
> > +}
>
> " if (of_...())
> return;
>
> if (!strlen())
> return"

Sure.

>
> Check return value of pattern_trig_store_patterns().

i can add printing of error in such case but I am not sure whether it
is worth to fail entire pattern_trig_activate().

Best regards,
Krzysztof