On Tue, Jul 04, 2023 at 05:19:52PM +0100, Mans Rullgard wrote: > The condition for the initial power state based on the default > brightness value is reversed. Fix it. > > Furthermore, use the actual state of the LEDs rather than the default > brightness specified in the devicetree as the latter should not cause > the backlight to be automatically turned on. > > If the backlight device is not linked to any display, set the initial > power to on unconditionally. > > Fixes: ae232e45acf9 ("backlight: add led-backlight driver") > Signed-off-by: Mans Rullgard <mans@xxxxxxxxx> > --- > Changes in v2: > - Use the reported LED state to set initial power state > - Always power on if no phandle in DT > --- > drivers/video/backlight/led_bl.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/backlight/led_bl.c b/drivers/video/backlight/led_bl.c > index 3259292fda76..bbf1673b1fb0 100644 > --- a/drivers/video/backlight/led_bl.c > +++ b/drivers/video/backlight/led_bl.c > @@ -176,6 +176,7 @@ static int led_bl_probe(struct platform_device *pdev) > { > struct backlight_properties props; > struct led_bl_data *priv; > + int init_brightness; > int ret, i; > > priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > @@ -190,6 +191,8 @@ static int led_bl_probe(struct platform_device *pdev) > if (ret) > return ret; > > + init_brightness = priv->default_brightness; > + > ret = led_bl_parse_levels(&pdev->dev, priv); > if (ret < 0) { > dev_err(&pdev->dev, "Failed to parse DT data\n"); > @@ -200,8 +203,8 @@ static int led_bl_probe(struct platform_device *pdev) > props.type = BACKLIGHT_RAW; > props.max_brightness = priv->max_brightness; > props.brightness = priv->default_brightness; > - props.power = (priv->default_brightness > 0) ? FB_BLANK_POWERDOWN : > - FB_BLANK_UNBLANK; > + props.power = (init_brightness || !pdev->dev.of_node->phandle) ? > + FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN; I was rather expecting to see a comment in the code here... it's super hard to figure out the purpose of the phandle check otherwise. Daniel.