Use backlight_{enable,disable} in the probe function to avoid hardcoding power handling in the driver. Move platform_set_drvdata() up as the enable/disable call will trigger a callback to the driver. Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx> Cc: Lee Jones <lee.jones@xxxxxxxxxx> Cc: Daniel Thompson <daniel.thompson@xxxxxxxxxx> Cc: Jingoo Han <jingoohan1@xxxxxxxxx> --- drivers/video/backlight/gpio_backlight.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c index 6f78d928f054..dc9354dc5e6a 100644 --- a/drivers/video/backlight/gpio_backlight.c +++ b/drivers/video/backlight/gpio_backlight.c @@ -53,6 +53,7 @@ static int gpio_backlight_probe(struct platform_device *pdev) struct backlight_device *bl; struct gpio_backlight *gbl; int ret, init_brightness, def_value; + bool enable = false; gbl = devm_kzalloc(dev, sizeof(*gbl), GFP_KERNEL); if (gbl == NULL) @@ -82,16 +83,22 @@ static int gpio_backlight_probe(struct platform_device *pdev) return PTR_ERR(bl); } - /* Set the initial power state */ - if (!of_node || !of_node->phandle) + platform_set_drvdata(pdev, bl); + + /* Set the initial state */ + if (!of_node || !of_node->phandle) { /* Not booted with device tree or no phandle link to the node */ - bl->props.power = def_value ? FB_BLANK_UNBLANK - : FB_BLANK_POWERDOWN; - else if (gpiod_get_direction(gbl->gpiod) == 0 && - gpiod_get_value_cansleep(gbl->gpiod) == 0) - bl->props.power = FB_BLANK_POWERDOWN; + if (def_value) + enable = true; + } else if (!(gpiod_get_direction(gbl->gpiod) == 0 && + gpiod_get_value_cansleep(gbl->gpiod) == 0)) { + enable = true; + } + + if (enable) + backlight_enable(bl); else - bl->props.power = FB_BLANK_UNBLANK; + backlight_disable(bl); bl->props.brightness = 1; @@ -102,7 +109,6 @@ static int gpio_backlight_probe(struct platform_device *pdev) return ret; } - platform_set_drvdata(pdev, bl); return 0; } -- 2.25.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel