[PATCH] leds: pwm-multicolor: fix multicolor PWM LED lights up without any setting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



from drivers/leds/leds-pwm.c:led_pwm_set(),

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

do the same in led_pwm_mc_set().

this fixes LEDs light up without any setting (i.e. brightness is 0) on
Radxa E25.

Signed-off-by: FUKAUMI Naoki <naoki@xxxxxxxxx>
---
 drivers/leds/rgb/leds-pwm-multicolor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/leds/rgb/leds-pwm-multicolor.c b/drivers/leds/rgb/leds-pwm-multicolor.c
index e1a81e0109e8..7155339c075e 100644
--- a/drivers/leds/rgb/leds-pwm-multicolor.c
+++ b/drivers/leds/rgb/leds-pwm-multicolor.c
@@ -50,7 +50,7 @@ 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;
+		priv->leds[i].state.enabled = !(cdev->flags & LED_SUSPENDED);
 		ret = pwm_apply_might_sleep(priv->leds[i].pwm,
 					    &priv->leds[i].state);
 		if (ret)
-- 
2.43.0





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux