summaryrefslogtreecommitdiffstats
path: root/drivers/leds/trigger
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2018-10-24 22:44:39 +0200
committerJacek Anaszewski <jacek.anaszewski@gmail.com>2018-10-25 20:47:46 +0200
commit1b50bb4d36e89fd54c14722c4ab5266ef17767ff (patch)
tree879053b37524d99afcb883a0c89e0182310a8974 /drivers/leds/trigger
parentleds: sc27xx: Add pattern_set/clear interfaces for LED controller (diff)
downloadlinux-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.c7
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 {