From: Lee Jones <lee@kernel.org>
To: linux-leds@vger.kernel.org,
Jacek Anaszewski <jacek.anaszewski@gmail.com>,
Pavel Machek <pavel@kernel.org>,
Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Subject: Re: [PATCH RESEND v2] led: multicolor: Fix intensity setting while SW blinking
Date: Fri, 4 Apr 2025 16:46:21 +0100 [thread overview]
Message-ID: <20250404154621.GI372032@google.com> (raw)
In-Reply-To: <20250402205340.qdp5dw3p2cxv2pvq@schlupp.tec.linutronix.de>
On Wed, 02 Apr 2025, Tobias Deiminger wrote:
> Hi Lee and Pavel,
>
> this is still an issue. Sven's patch still applies and fixes the bug.
> Would you mind having another look?
I don't have Sven's patch in my inbox. Please resubmit it.
> Minimal reproducer:
>
> echo timer > trigger
> echo 255 > brightness
> echo 255 255 255 > multi_intensity # stops blinking with 50% probability
>
> I encountered this independently and found the thread in hindsight. See review
> comments below.
>
> Am Mo, 27. Jun 22 15:31 schrieb Sven Schwermer <sven@svenschwermer.de>:
> > From: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
> >
> > When writing to the multi_intensity file, don't unconditionally call
> > led_set_brightness. By only doing this if blinking is inactive we
> > prevent blinking from stopping if the blinking is in its off phase while
> > the file is written.
> >
> > Instead, if blinking is active, the changed intensity values are applied
> > upon the next blink. This is consistent with changing the brightness on
> > monochrome LEDs with active blinking.
> >
> > Suggested-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> > Tested-by: Sven Schuchmann <schuchmann@schleissheimer.de>
> > Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> > Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
> > ---
> >
> > Notes:
> > V1->V2: Change title, add tags
> >
> > drivers/leds/led-class-multicolor.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/leds/led-class-multicolor.c b/drivers/leds/led-class-multicolor.c
> > index e317408583df..5b1479b5d32c 100644
> > --- a/drivers/leds/led-class-multicolor.c
> > +++ b/drivers/leds/led-class-multicolor.c
> > @@ -59,7 +59,8 @@ static ssize_t multi_intensity_store(struct device *dev,
> > for (i = 0; i < mcled_cdev->num_colors; i++)
> > mcled_cdev->subled_info[i].intensity = intensity_value[i];
> >
> > - led_set_brightness(led_cdev, led_cdev->brightness);
> > + if (!test_bit(LED_BLINK_SW, &led_cdev->work_flags))
> > + led_set_brightness(led_cdev, led_cdev->brightness);
>
> Had my own debugging session and ended up with the very same conclusion. Seems
> solid and consistent.
>
> Reviewed-by: Tobias Deiminger <tobias.deiminger@linutronix.de>
>
> Btw, my initial attempt to fix it was to have two led_get_brightness variants.
> The existing variant gets the timer-aware momentary brightness, and a new one
> would get the timer-agnostic on-value. The latter variant could then be used to
> call led_set_brightness without the risk of resetting blinking. Worked, but got
> overly complicated.
>
> Best regards
> Tobias
>
> > ret = size;
> > err_out:
> > mutex_unlock(&led_cdev->led_access);
> >
> > base-commit: 210e04ff768142b96452030c4c2627512b30ad95
> > --
> > 2.36.1
> >
--
Lee Jones [李琼斯]
next prev parent reply other threads:[~2025-04-04 15:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-27 13:31 [PATCH RESEND v2] led: multicolor: Fix intensity setting while SW blinking Sven Schwermer
2023-01-04 8:46 ` AW: " Sven Schuchmann
2023-03-22 17:25 ` Jacek Anaszewski
2023-03-23 11:38 ` Pavel Machek
2025-04-02 20:53 ` Tobias Deiminger
2025-04-04 15:46 ` Lee Jones [this message]
2025-04-04 18:40 ` [PATCH v3] " Sven Schwermer
2025-04-10 9:53 ` (subset) " Lee Jones
-- strict thread matches above, loose matches on Subject: below --
2022-06-01 6:37 [PATCH RESEND v2] " Sven Schwermer
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=20250404154621.GI372032@google.com \
--to=lee@kernel.org \
--cc=jacek.anaszewski@gmail.com \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@kernel.org \
--cc=sven.schwermer@disruptive-technologies.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox