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