The KTD253 backlight might already be on when the driver is probed: then we don't really know what the current ratio is and all light intensity settings will be off relative to what it was at boot.
To fix this, bring up the backlight OFF then move it to the default backlight from there so we know the state.
Signed-off-by: Linus Walleij linus.walleij@linaro.org --- drivers/video/backlight/ktd253-backlight.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/drivers/video/backlight/ktd253-backlight.c b/drivers/video/backlight/ktd253-backlight.c index e3fee3f1f582..d7b287cffd5c 100644 --- a/drivers/video/backlight/ktd253-backlight.c +++ b/drivers/video/backlight/ktd253-backlight.c @@ -137,15 +137,7 @@ static int ktd253_backlight_probe(struct platform_device *pdev) brightness = max_brightness; }
- if (brightness) - /* This will be the default ratio when the KTD253 is enabled */ - ktd253->ratio = KTD253_MAX_RATIO; - else - ktd253->ratio = 0; - - ktd253->gpiod = devm_gpiod_get(dev, "enable", - brightness ? GPIOD_OUT_HIGH : - GPIOD_OUT_LOW); + ktd253->gpiod = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); if (IS_ERR(ktd253->gpiod)) { ret = PTR_ERR(ktd253->gpiod); if (ret != -EPROBE_DEFER) @@ -153,6 +145,8 @@ static int ktd253_backlight_probe(struct platform_device *pdev) return ret; } gpiod_set_consumer_name(ktd253->gpiod, dev_name(dev)); + /* Bring backlight to a known off state */ + msleep(KTD253_T_OFF_MS);
bl = devm_backlight_device_register(dev, dev_name(dev), dev, ktd253, &ktd253_backlight_ops, NULL);
On Tue, Jan 26, 2021 at 10:32:00PM +0100, Linus Walleij wrote:
The KTD253 backlight might already be on when the driver is probed: then we don't really know what the current ratio is and all light intensity settings will be off relative to what it was at boot.
To fix this, bring up the backlight OFF then move it to the default backlight from there so we know the state.
Signed-off-by: Linus Walleij linus.walleij@linaro.org
Hmnnn... horid, since the backlight will flicker during boot, but I recall that this bit of hardware is pretty horid anyway so it is not easily avoided.
Therefore, slightly grudgingly, Reviewed-by: Daniel Thompson daniel.thompson@linaro.org
Daniel.
On Fri, Feb 5, 2021 at 6:27 PM Daniel Thompson daniel.thompson@linaro.org wrote:
On Tue, Jan 26, 2021 at 10:32:00PM +0100, Linus Walleij wrote:
The KTD253 backlight might already be on when the driver is probed: then we don't really know what the current ratio is and all light intensity settings will be off relative to what it was at boot.
To fix this, bring up the backlight OFF then move it to the default backlight from there so we know the state.
Signed-off-by: Linus Walleij linus.walleij@linaro.org
Hmnnn... horid, since the backlight will flicker during boot, but I recall that this bit of hardware is pretty horid anyway so it is not easily avoided.
Therefore, slightly grudgingly, Reviewed-by: Daniel Thompson daniel.thompson@linaro.org
Thanks, and I agree, this makes things better than before though.
The actual problem translates to the generic problem of bringing misc boot-time conditions over to the kernel, and handing over any type of hardware in a half-initialized state. We don't really have a solution to that yet, many have tried.
For this specific case, one can imagine a "kinetic,boot-time-brightness" (or similar) DT property, with the idea that the boot loader or DT author knows what to put in there. I put that on my TODO (the code in this patch will still needed if that property isn't provided).
Yours, Linus Walleij
On Tue, 26 Jan 2021, Linus Walleij wrote:
The KTD253 backlight might already be on when the driver is probed: then we don't really know what the current ratio is and all light intensity settings will be off relative to what it was at boot.
To fix this, bring up the backlight OFF then move it to the default backlight from there so we know the state.
Signed-off-by: Linus Walleij linus.walleij@linaro.org
drivers/video/backlight/ktd253-backlight.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)
Grudgingly applied, thanks.
dri-devel@lists.freedesktop.org