From: Lee Jones <lee@kernel.org>
To: Tobias Deiminger <tobias.deiminger@linutronix.de>
Cc: pavel@kernel.org, eajames@linux.ibm.com, j.weitzel@phytec.de,
riku.voipio@iki.fi, linux-leds@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] leds: pca9532: don't stop blinking for non-zero brightness
Date: Tue, 31 Mar 2026 10:47:30 +0100 [thread overview]
Message-ID: <20260331094730.GC3241346@google.com> (raw)
In-Reply-To: <20260321102121.1563365-1-tobias.deiminger@linutronix.de>
On Sat, 21 Mar 2026, Tobias Deiminger wrote:
> pca9532 unexpectedly stopped blinking when changing brightness to a
> non-zero value. To reproduce:
>
> echo timer > /sys/class/leds/led-1/trigger # blinks
> echo 255 > /sys/class/leds/led-1/brightness # blinking stops, light on
> cat /sys/class/leds/led-1/trigger # still claims [timer]
>
> According to Documentation/leds/leds-class.rst, only brightness = 0
> shall be a stop condition:
>
> > You can change the brightness value of a LED independently of the
> > timer trigger. However, if you set the brightness value to LED_OFF it
> > will also disable the timer trigger.
>
> Therefore add a guard to continue blinking when brightness != LED_OFF,
> similar to how pca955x does it since 575f10dc64a2 ("leds: pca955x: Add
> HW blink support").
>
> Signed-off-by: Tobias Deiminger <tobias.deiminger@linutronix.de>
> ---
>
> Notes:
> A more advanced solution was to not simply return early on
> set_brightness, but actually support blinking at arbitrary brightness.
> This would however require conditional fallback to SW blinking, since
> PCA 9532 doesn't support routing PWM 0 (dim) and PWM 1 (blink) in
> series. The bugfix here keeps it simple. Optional SW blinking could be
> tried in a separate patch.
>
> drivers/leds/leds-pca9532.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/leds/leds-pca9532.c b/drivers/leds/leds-pca9532.c
> index 0344189bb991..3de20e087334 100644
> --- a/drivers/leds/leds-pca9532.c
> +++ b/drivers/leds/leds-pca9532.c
> @@ -184,6 +184,8 @@ static int pca9532_set_brightness(struct led_classdev *led_cdev,
>
> if (value == LED_OFF)
> led->state = PCA9532_OFF;
> + else if (led->state == PCA9532_PWM1)
> + return 0; /* non-zero brightness shall not stop HW blinking */
Comments should start with a capital letter.
Also, as the final 'else' statement uses braces, should we perhaps take the
opportunity to add braces to all branches of this conditional block?
> else if (value == LED_FULL)
> led->state = PCA9532_ON;
> else {
>
> base-commit: b2c87f5e98cd88095dbc6802197526703d5e4e48
> --
> 2.47.3
>
>
--
Lee Jones [李琼斯]
next prev parent reply other threads:[~2026-03-31 9:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-21 10:21 [PATCH] leds: pca9532: don't stop blinking for non-zero brightness Tobias Deiminger
2026-03-31 9:47 ` Lee Jones [this message]
2026-03-31 20:23 ` Tobias Deiminger
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=20260331094730.GC3241346@google.com \
--to=lee@kernel.org \
--cc=eajames@linux.ibm.com \
--cc=j.weitzel@phytec.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@kernel.org \
--cc=riku.voipio@iki.fi \
--cc=tobias.deiminger@linutronix.de \
/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.