'brightness' is usually an index into a table of duty_cycle values,
where the value at index 0 may well be non-zero
(tegra30-apalis-eval.dts and tegra30-colibri-eval-v3.dts are real-life
examples).
Thus brightness == 0 does not necessarily mean that the PWM output
will be inactive.
Check for 'duty_cycle == 0' rather than 'brightness == 0' to decide
whether to disable the PWM.

Signed-off-by: Lothar Waßmann <l...@karo-electronics.de>
---
 drivers/video/backlight/pwm_bl.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index b2b366b..80b2b52 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -103,8 +103,8 @@ static int pwm_backlight_update_status(struct 
backlight_device *bl)
        if (pb->notify)
                brightness = pb->notify(pb->dev, brightness);
 
-       if (brightness > 0) {
-               duty_cycle = compute_duty_cycle(pb, brightness);
+       duty_cycle = compute_duty_cycle(pb, brightness);
+       if (duty_cycle > 0) {
                pwm_config(pb->pwm, duty_cycle, pb->period);
                pwm_backlight_power_on(pb, brightness);
        } else
-- 
2.1.4

Reply via email to