All of lore.kernel.org
 help / color / mirror / Atom feed
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 [李琼斯]

  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 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.