diff options
author | Pavel Machek <pavel@ucw.cz> | 2018-10-24 22:44:39 +0200 |
---|---|---|
committer | Jacek Anaszewski <jacek.anaszewski@gmail.com> | 2018-10-25 20:47:46 +0200 |
commit | 1b50bb4d36e89fd54c14722c4ab5266ef17767ff (patch) | |
tree | 879053b37524d99afcb883a0c89e0182310a8974 /drivers/leds/trigger | |
parent | leds: sc27xx: Add pattern_set/clear interfaces for LED controller (diff) | |
download | linux-1b50bb4d36e89fd54c14722c4ab5266ef17767ff.tar.xz linux-1b50bb4d36e89fd54c14722c4ab5266ef17767ff.zip |
Fix pattern handling optimalization
Check for zero duration before skipping step. This fixes pattern
echo "0 1000 10 2550 0 1000" > pattern
which should do [ .-xXx-.] but does [ Xx-.]
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Suggested-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Diffstat (limited to 'drivers/leds/trigger')
-rw-r--r-- | drivers/leds/trigger/ledtrig-pattern.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/leds/trigger/ledtrig-pattern.c b/drivers/leds/trigger/ledtrig-pattern.c index ce7acd115dd8..174a298f1be0 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 { |