diff mbox series

[v2] leds: pwm-multicolor: Disable PWM when going to suspend

Message ID 50bbd767-b0e0-4788-975b-f5d9598208e5@chaosfield.at
State New
Headers show
Series [v2] leds: pwm-multicolor: Disable PWM when going to suspend | expand

Commit Message

Jakob Riepler Dec. 2, 2024, 12:07 p.m. UTC
This fixes suspend on platforms like stm32mp1xx, where the PWM consumer
has to be disabled for the PWM to enter suspend.
Another positive side effect is that active-low LEDs now properly
turn off instead of going back to full brightness when they are set to 0.

Link: https://lore.kernel.org/all/20240417153846.271751-2-u.kleine-koenig@pengutronix.de/
Signed-off-by: Jakob Riepler <jakob+lkml@chaosfield.at>
---
Changes in v2:
 - fix wrong line-breaks in patch

 drivers/leds/rgb/leds-pwm-multicolor.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Lee Jones Dec. 12, 2024, 5:43 p.m. UTC | #1
On Mon, 02 Dec 2024, Jakob Riepler wrote:

> This fixes suspend on platforms like stm32mp1xx, where the PWM consumer
> has to be disabled for the PWM to enter suspend.
> Another positive side effect is that active-low LEDs now properly
> turn off instead of going back to full brightness when they are set to 0.
> 
> Link: https://lore.kernel.org/all/20240417153846.271751-2-u.kleine-koenig@pengutronix.de/
> Signed-off-by: Jakob Riepler <jakob+lkml@chaosfield.at>
> ---
> Changes in v2:
>  - fix wrong line-breaks in patch

I get a warning that this patch is corrupt as well.

How are you creating them?

Please use `git format-patch`, `git send-email` or `b4`.
Uwe Kleine-König Dec. 12, 2024, 8:58 p.m. UTC | #2
On Mon, Dec 02, 2024 at 01:07:51PM +0100, Jakob Riepler wrote:
> This fixes suspend on platforms like stm32mp1xx, where the PWM consumer
> has to be disabled for the PWM to enter suspend.
> Another positive side effect is that active-low LEDs now properly
> turn off instead of going back to full brightness when they are set to 0.
> 
> Link: https://lore.kernel.org/all/20240417153846.271751-2-u.kleine-koenig@pengutronix.de/
> Signed-off-by: Jakob Riepler <jakob+lkml@chaosfield.at>

Acked-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>

Best regards
Uwe
Jakob Riepler Dec. 12, 2024, 11:07 p.m. UTC | #3
> I get a warning that this patch is corrupt as well.
> 
> How are you creating them?

`git format-patch` and thunderbird with the settings mentioned in the 
kernel documentation.

> Please use `git format-patch`, `git send-email` or `b4`.

If you'd like I can resend with a different mail server - I had trouble 
setting up `git send-email` with my primary mail provider (enforced oauth)

- Jakob
Lee Jones Dec. 13, 2024, 4:34 p.m. UTC | #4
On Fri, 13 Dec 2024, Jakob Riepler wrote:

> > I get a warning that this patch is corrupt as well.
> > 
> > How are you creating them?
> 
> `git format-patch` and thunderbird with the settings mentioned in the kernel
> documentation.
> 
> > Please use `git format-patch`, `git send-email` or `b4`.
> 
> If you'd like I can resend with a different mail server - I had trouble
> setting up `git send-email` with my primary mail provider (enforced oauth)

I haven't tried it for sending patches, but I hear b4 is good.

I can't take what you have sent here - it doesn't apply.
Uwe Kleine-König Dec. 13, 2024, 11:11 p.m. UTC | #5
Hello Jakob,

On Fri, Dec 13, 2024 at 08:10:41PM +0100, Jakob Riepler wrote:
> This fixes suspend on platforms like stm32mp1xx, where the PWM consumer
> has to be disabled for the PWM to enter suspend.
> Another positive side effect is that active-low LEDs now properly
> turn off instead of going back to full brightness when they are set to 0.
> 
> Link: https://lore.kernel.org/all/20240417153846.271751-2-u.kleine-koenig@pengutronix.de/
> Signed-off-by: Jakob Riepler <jakob+lkml@chaosfield.at>
> ---
> Changes in v2:
>  - fix wrong line-breaks in patch
> Changes in v3:
>  - use git send-email

Applies fine for me now.

I already gave my Ack for v2, repeating it here to make it easy to pick
up:

Acked-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>

Please add this to your v4 if you have to send a new version. I don't
know how picky Lee is, but the email address of the sender doesn't match
the S-o-b line ...

Best regards
Uwe
Lee Jones Dec. 16, 2024, 9:49 a.m. UTC | #6
On Sat, 14 Dec 2024, Uwe Kleine-König wrote:

> Hello Jakob,
> 
> On Fri, Dec 13, 2024 at 08:10:41PM +0100, Jakob Riepler wrote:
> > This fixes suspend on platforms like stm32mp1xx, where the PWM consumer
> > has to be disabled for the PWM to enter suspend.
> > Another positive side effect is that active-low LEDs now properly
> > turn off instead of going back to full brightness when they are set to 0.
> > 
> > Link: https://lore.kernel.org/all/20240417153846.271751-2-u.kleine-koenig@pengutronix.de/
> > Signed-off-by: Jakob Riepler <jakob+lkml@chaosfield.at>
> > ---
> > Changes in v2:
> >  - fix wrong line-breaks in patch
> > Changes in v3:
> >  - use git send-email
> 
> Applies fine for me now.
> 
> I already gave my Ack for v2, repeating it here to make it easy to pick
> up:
> 
> Acked-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
> 
> Please add this to your v4 if you have to send a new version. I don't
> know how picky Lee is, but the email address of the sender doesn't match
> the S-o-b line ...

Very picky!  Please resend.

Also, please send subsequent versions as a new thread.
Lee Jones Dec. 17, 2024, 3:05 p.m. UTC | #7
On Mon, 02 Dec 2024 13:07:51 +0100, Jakob Riepler wrote:
> This fixes suspend on platforms like stm32mp1xx, where the PWM consumer
> has to be disabled for the PWM to enter suspend.
> Another positive side effect is that active-low LEDs now properly
> turn off instead of going back to full brightness when they are set to 0.
> 
> 

Applied, thanks!

[1/1] leds: pwm-multicolor: Disable PWM when going to suspend
      commit: 29df7025cff00dd9fa7cacbec979ede97ee775eb

--
Lee Jones [李琼斯]
diff mbox series

Patch

diff --git a/drivers/leds/rgb/leds-pwm-multicolor.c b/drivers/leds/rgb/leds-pwm-multicolor.c
index e1a81e0109e8..f80a06cc31f8 100644
--- a/drivers/leds/rgb/leds-pwm-multicolor.c
+++ b/drivers/leds/rgb/leds-pwm-multicolor.c
@@ -50,7 +50,13 @@  static int led_pwm_mc_set(struct led_classdev *cdev,
             duty = priv->leds[i].state.period - duty;
 
         priv->leds[i].state.duty_cycle = duty;
-        priv->leds[i].state.enabled = duty > 0;
+        /*
+         * Disabling a PWM doesn't guarantee that it emits the inactive level.
+         * So keep it on. Only for suspending the PWM should be disabled because
+         * otherwise it refuses to suspend. The possible downside is that the
+         * LED might stay (or even go) on.
+         */
+        priv->leds[i].state.enabled = !(cdev->flags & LED_SUSPENDED);
         ret = pwm_apply_might_sleep(priv->leds[i].pwm,
                         &priv->leds[i].state);
         if (ret)