Skip to content

leds: put hard limit on minimum blink period for slow leds

Stas Sergeev linux-leds lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest20 patches 13 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/20leds: implement LED_BRIGHTNESS_FAST flagdrivers/leds/led-core.c drivers/leds/led-triggers.c drivers/leds/trigger/ledtrig-oneshot.c +2 more+51 -2210 replies
2/20leds: mark dell-led driver with LED_BRIGHTNESS_FAST flagdrivers/leds/dell-led.c+1 -10 replies
2/20leds: mark dell-led driver with LED_BRIGHTNESS_FAST flagdrivers/leds/dell-led.c+1 -10 replies
3/20leds: mark asic3 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-asic3.c+1 -10 replies
3/20leds: mark asic3 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-asic3.c+1 -10 replies
4/20leds: mark bcm6328 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-bcm6328.c+1 -00 replies
4/20leds: mark bcm6328 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-bcm6328.c+1 -00 replies
5/20leds: mark clevo-mail driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-clevo-mail.c+1 -10 replies
5/20leds: mark clevo-mail driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-clevo-mail.c+1 -10 replies
6/20leds: mark cobalt-qube driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-cobalt-qube.c+1 -00 replies
6/20leds: mark cobalt-qube driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-cobalt-qube.c+1 -00 replies
7/20leds: mark cobalt-raq driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-cobalt-raq.c+2 -00 replies
7/20leds: mark cobalt-raq driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-cobalt-raq.c+2 -00 replies
8/20leds: mark fsg driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-fsg.c+6 -60 replies
8/20leds: mark fsg driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-fsg.c+6 -60 replies
9/20leds: mark gpio driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-gpio.c+2 -00 replies
9/20leds: mark gpio driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-gpio.c+2 -00 replies
10/20leds: mark hp6xx driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-hp6xx.c+2 -20 replies
10/20leds: mark hp6xx driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-hp6xx.c+2 -20 replies
11/20leds: mark locomo driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-locomo.c+2 -00 replies
11/20leds: mark locomo driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-locomo.c+2 -00 replies
12/20leds: mark net48xx driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-net48xx.c+1 -10 replies
13/20leds: mark netxbig driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-netxbig.c+1 -10 replies
13/20leds: mark netxbig driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-netxbig.c+1 -10 replies
14/20leds: mark ns2 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-ns2.c+1 -10 replies
14/20leds: mark ns2 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-ns2.c+1 -10 replies
15/20leds: mark ot200 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-ot200.c+1 -00 replies
15/20leds: mark ot200 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-ot200.c+1 -01 reply
16/20leds: mark pwm driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-pwm.c+2 -00 replies
16/20leds: mark pwm driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-pwm.c+2 -00 replies
17/20leds: mark s3c24xx driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-s3c24xx.c+1 -10 replies
17/20leds: mark s3c24xx driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-s3c24xx.c+1 -10 replies
18/20leds: mark ss4200 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-ss4200.c+1 -00 replies
18/20leds: mark ss4200 driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-ss4200.c+1 -00 replies
19/20leds: mark versatile driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-versatile.c+1 -00 replies
19/20leds: mark versatile driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-versatile.c+1 -02 replies
20/20leds: mark wrap driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-wrap.c+3 -30 replies
20/20leds: mark wrap driver with LED_BRIGHTNESS_FAST flagdrivers/leds/leds-wrap.c+3 -30 replies

Reviews trailers per patch

4 of 38 patches have a Reviewed-by or Acked-by.

PatchLinus WalleijChristian Gmeiner
1/20
2/20
2/20
3/20
3/20
4/20
4/20
5/20
5/20
6/20
6/20
7/20
7/20
8/20
8/20
9/20
9/20
10/20
10/20
11/20
11/20
12/20
13/20
13/20
14/20
14/20
15/20R-b
15/20R-b
16/20
16/20
17/20
17/20
18/20
18/20
19/20A-b
19/20A-b
20/20
20/20

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/20] leds: put hard limit on minimum blink period for slow leds

Currently the timer trigger allows to set blink period as small as 1mS. But in fact the minimum period is jiffy, which is usually 10mS. The following mail says:
http://lkml.iu.edu/hypermail/linux/kernel/1504.3/03469.html
<<
As I mentioned before even with hr timer it wouldn't be possible to assure that 1ms is achievable due to locking and bus latency reasons.

Quoted 1 line
Quoted 1 line

So the limit of 10mS should be enforced for drivers that use waiting operations, like transfers across slow bus. This allows to stay on safe side when CONFIG_HZ is set to eg 1000.

This patch set differentiates the "fast" drivers by marking them with the new LED_BRIGHTNESS_FAST flag. For these drivers, setting periods as small as 1mS is possible (provided CONFIG_HZ is set appropriately), while for "slow" drivers the limit of 10mS in enforced. In the future, the "fast" drivers may get used by a software PWM.

 drivers/leds/dell-led.c                |    2 +-
 drivers/leds/led-core.c                |   30 +++++++++++++++++++-----------
 drivers/leds/led-triggers.c            |    8 +++++---
 drivers/leds/leds-asic3.c              |    2 +-
 drivers/leds/leds-bcm6328.c            |    1 +
 drivers/leds/leds-clevo-mail.c         |    2 +-
 drivers/leds/leds-cobalt-qube.c        |    1 +
 drivers/leds/leds-cobalt-raq.c         |    2 ++
 drivers/leds/leds-fsg.c                |   12 ++++++------
 drivers/leds/leds-gpio.c               |    2 ++
 drivers/leds/leds-hp6xx.c              |    4 ++--
 drivers/leds/leds-locomo.c             |    2 ++
 drivers/leds/leds-net48xx.c            |    2 +-
 drivers/leds/leds-netxbig.c            |    2 +-
 drivers/leds/leds-ns2.c                |    2 +-
 drivers/leds/leds-ot200.c              |    1 +
 drivers/leds/leds-pwm.c                |    2 ++
 drivers/leds/leds-s3c24xx.c            |    2 +-
 drivers/leds/leds-ss4200.c             |    1 +
 drivers/leds/leds-versatile.c          |    1 +
 drivers/leds/leds-wrap.c               |    6 +++---
 drivers/leds/trigger/ledtrig-oneshot.c |    5 ++++-
 drivers/leds/trigger/ledtrig-timer.c   |   18 +++++++++++++-----
 include/linux/leds.h                   |   12 ++++++++++--
 24 files changed, 82 insertions(+), 40 deletions(-)