Re: [PATCH v12 1/2] leds: core: Introduce LED pattern trigger

From: Pavel Machek
Date: Fri Sep 21 2018 - 17:12:26 EST


On Fri 2018-09-21 22:59:40, Jacek Anaszewski wrote:
> Hi Baolin,
>
> On 09/21/2018 05:31 AM, Baolin Wang wrote:
> > Hi Jacek and Pavel,
> >
> > On 11 September 2018 at 10:47, Baolin Wang <baolin.wang@xxxxxxxxxx> wrote:
> >> This patch adds one new led trigger that LED device can configure
> >> the software or hardware pattern and trigger it.
> >>
> >> Consumers can write 'pattern' file to enable the software pattern
> >> which alters the brightness for the specified duration with one
> >> software timer.
> >>
> >> Moreover consumers can write 'hw_pattern' file to enable the hardware
> >> pattern for some LED controllers which can autonomously control
> >> brightness over time, according to some preprogrammed hardware
> >> patterns.
> >>
> >> Signed-off-by: Raphael Teysseyre <rteysseyre@xxxxxxxxx>
> >> Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>

> > Do you have any comments for the v12 patch set? Thanks.
>
> We will probably have to remove hw_pattern from ledtrig-pattern
> since we are unable to come up with generic interface for it.
> Unless thread [0] will end up with some brilliant ideas. So far
> we're waiting for Pavel's reply.
>
> [0] https://lkml.org/lkml/2018/9/13/1216

Patch 1/2 is not controversial; I believe we can apply it now.

2/2: Non-linear or not, can we just ignore that for now? We don't have
well-defined meaning of what brightness 128 means, so... I believe we
can do that reasonably safely.

I don't exactly understand what you are saying with the four tuples.

Yes, sc27xx currently has a limit where it can do single rise, hold,
lower, hold at zero.

That is described by pattern:

"0 rise_duration brightness high_duration brightness fall_duration 0 low_duration"

We should add this to sc27xx handler:

> I'd actually like to see this at begining of function:
> if (pattern[0].brightness != 0)
> return -EINVAL;
> if (pattern[2].brightness != 0)
> return -EINVAL;
> if (pattern[3].brightness != 0)
> return -EINVAL;
> if (pattern[1].brightness != pattern[2].brightness)
> return -EINVAL;
>
> ..so if user writes something unexpected, he gets the error back.

Then it is compatible -- or should be. Pattern trigger should do the
same -- rise, hold, lower, hold at zero.

I don't really see the problem.

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