From: Pavel Machek <pavel@ucw.cz>
To: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Cc: Baolin Wang <baolin.wang@linaro.org>,
rteysseyre@gmail.com, bjorn.andersson@linaro.org,
broonie@kernel.org, linus.walleij@linaro.org,
linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v15 1/2] leds: core: Introduce LED pattern trigger
Date: Wed, 24 Oct 2018 21:55:29 +0200 [thread overview]
Message-ID: <20181024195529.GA23069@amd> (raw)
In-Reply-To: <bdadda71-f919-b6a6-4e1c-f87ed298b6b5@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3131 bytes --]
On Wed 2018-10-24 21:17:25, Jacek Anaszewski wrote:
> On 10/24/2018 10:31 AM, Pavel Machek wrote:
> > Hi!
> >
> >>> +
> >>> + The gradual dimming format of the software pattern values should be:
> >>> + "brightness_1 duration_1 brightness_2 duration_2 brightness_3
> >>> + duration_3 ...". For example:
> >>> +
> >>> + echo 0 1000 255 2000 > pattern
> >>> +
> >>> + It will make the LED go gradually from zero-intensity to max (255)
> >>> + intensity in 1000 milliseconds, then back to zero intensity in 2000
> >>> + milliseconds:
> >>> +
> >>> + LED brightness
> >>> + ^
> >>> + 255-| / \ / \ /
> >>> + | / \ / \ /
> >>> + | / \ / \ /
> >>> + | / \ / \ /
> >>> + 0-| / \/ \/
> >>> + +---0----1----2----3----4----5----6------------> time (s)
> >>> +
> >
> > Ok, so I got around to testing this.
> >
> > echo "0 1000 10 2550 0 1000 0 100" > pattern
> >
> > makes expected pattern [ .-xXx-. ].
> >
> > But when I do
> >
> > echo "0 1000 10 2550 0 1000" > pattern
> >
> > I only get expected pattern on the first iteration, then I get
> > [ Xx-. ].
>
> This is because the tuples are processed in a loop, without
> discerning between start and end of the sequence.
>
> So this sequence ends up being squashed, because of the
> comparison:
>
> if (data->curr->brightness == data->next->brightness) {
> //step change od brightness
> ...
> /* Skip the tuple with zero duration */
>
> Here we actually only assume that this is zero duration since it
> is not checked. Possibly needs fixing.
>
> pattern_trig_update_patterns(data);
> /* Select next tuple */
> pattern_trig_update_patterns(data);
I came up with this (untested).
diff --git a/drivers/leds/trigger/ledtrig-pattern.c b/drivers/leds/trigger/ledtrig-pattern.c
index ce7acd1..174a298 100644
--- a/drivers/leds/trigger/ledtrig-pattern.c
+++ b/drivers/leds/trigger/ledtrig-pattern.c
@@ -87,9 +87,10 @@ static void pattern_trig_timer_function(struct timer_list *t)
data->curr->brightness);
mod_timer(&data->timer,
jiffies + msecs_to_jiffies(data->curr->delta_t));
-
- /* Skip the tuple with zero duration */
- pattern_trig_update_patterns(data);
+ if (!data->next->delta_t) {
+ /* Skip the tuple with zero duration */
+ pattern_trig_update_patterns(data);
+ }
/* Select next tuple */
pattern_trig_update_patterns(data);
} else {
> In effect we have:
>
> 0 -> 10 // dimming
> 10 -> 0 // dimming
> 0 skipped // step
> 10 -> 0 // dimming
> 0 skipped // step
> 10 -> 0 // dimming
> ...
>
> In order to get "rise - fall - rise - fall" sequence you need
> only two tuples:
Well, I wanted "rise - fall - delay - rise - fall - delay"
sequence. Let me test the patch...
Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2018-10-24 19:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-11 4:07 [PATCH v15 1/2] leds: core: Introduce LED pattern trigger Baolin Wang
2018-10-11 4:07 ` [PATCH v15 2/2] leds: sc27xx: Add pattern_set/clear interfaces for LED controller Baolin Wang
2018-10-11 20:07 ` [PATCH v15 1/2] leds: core: Introduce LED pattern trigger Jacek Anaszewski
2018-10-12 1:40 ` Baolin Wang
2018-10-24 8:34 ` Pavel Machek
2018-10-24 8:31 ` Pavel Machek
2018-10-24 19:17 ` Jacek Anaszewski
2018-10-24 19:55 ` Pavel Machek [this message]
2018-10-24 20:44 ` [PATCH] Fix pattern handling optimalization Pavel Machek
2018-10-25 19:17 ` Jacek Anaszewski
2018-10-25 21:24 ` More checks for patterns? was: " Pavel Machek
2018-10-26 8:02 ` Baolin Wang
2018-10-26 19:56 ` Jacek Anaszewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181024195529.GA23069@amd \
--to=pavel@ucw.cz \
--cc=baolin.wang@linaro.org \
--cc=bjorn.andersson@linaro.org \
--cc=broonie@kernel.org \
--cc=jacek.anaszewski@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=rteysseyre@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.