backlight: pwm_bl: Don't rely on a disabled PWM emiting inactive state
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fri, 20 Jan 2023 12:00:18 +0000 (13:00 +0100)
committerLee Jones <lee@kernel.org>
Wed, 22 Feb 2023 10:55:28 +0000 (10:55 +0000)
commitdeaeeda2051fa280884bf5769021bcdeae5de44e
treeb2edb96bf1693dc8aa9f317f19a0cc949d378c37
parent00e7e698bff1dfdb74da6aff1d80508cdbde25f9
backlight: pwm_bl: Don't rely on a disabled PWM emiting inactive state

Most but not all PWMs drive the PWM pin to its inactive state when
disabled. However if there is no enable_gpio and no regulator the PWM
must drive the inactive state to actually disable the backlight.

So keep the PWM on in this case.

Note that to determine if there is a regulator some effort is required
because it might happen that there isn't actually one but the regulator
core gave us a dummy. (A nice side effect is that this makes the
regulator actually optional even on fully constrained systems.)

This fixes backlight disabling e.g. on i.MX6 when an inverted PWM is
used.

Hint for the future: If this change results in a regression, the bug is
in the lowlevel PWM driver.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230120120018.161103-3-u.kleine-koenig@pengutronix.de
drivers/video/backlight/pwm_bl.c