- Use backlight_get_brightness() helper - Use backlight_is_blank() helper - Use macro for initialization - Drop direct access to backlight properties - Use the devm_ variant for registering backlight device, and drop all explicit unregistering of the backlight device. Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx> Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> Cc: Thierry Reding <thierry.reding@xxxxxxxxx> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx> --- drivers/gpu/drm/panel/panel-sony-acx565akm.c | 44 +++++++------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c index 5c4b6f6e5c2d..3fc572d1de13 100644 --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c @@ -298,13 +298,7 @@ static void acx565akm_set_brightness(struct acx565akm_panel *lcd, int level) static int acx565akm_bl_update_status_locked(struct backlight_device *dev) { struct acx565akm_panel *lcd = dev_get_drvdata(&dev->dev); - int level; - - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) - level = dev->props.brightness; - else - level = 0; + int level = backlight_get_brightness(dev); acx565akm_set_brightness(lcd, level); @@ -330,8 +324,7 @@ static int acx565akm_bl_get_intensity(struct backlight_device *dev) mutex_lock(&lcd->mutex); - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) + if (backlight_is_blank(dev)) intensity = acx565akm_get_actual_brightness(lcd); else intensity = 0; @@ -348,39 +341,34 @@ static const struct backlight_ops acx565akm_bl_ops = { static int acx565akm_backlight_init(struct acx565akm_panel *lcd) { - struct backlight_properties props = { - .fb_blank = FB_BLANK_UNBLANK, - .power = FB_BLANK_UNBLANK, - .type = BACKLIGHT_RAW, - }; int ret; - - lcd->backlight = backlight_device_register(lcd->name, &lcd->spi->dev, - lcd, &acx565akm_bl_ops, - &props); - if (IS_ERR(lcd->backlight)) { - ret = PTR_ERR(lcd->backlight); - lcd->backlight = NULL; + struct backlight_device *bd; + DECLARE_BACKLIGHT_INIT_RAW(props, 0, 255); + + bd = devm_backlight_device_register(&lcd->spi->dev, lcd->name, + &lcd->spi->dev, lcd, + &acx565akm_bl_ops, &props); + if (IS_ERR(bd)) { + ret = PTR_ERR(bd); return ret; } + lcd->backlight = bd; if (lcd->has_cabc) { - ret = sysfs_create_group(&lcd->backlight->dev.kobj, + ret = sysfs_create_group(&bd->dev.kobj, &acx565akm_cabc_attr_group); if (ret < 0) { dev_err(&lcd->spi->dev, "%s failed to create sysfs files\n", __func__); - backlight_device_unregister(lcd->backlight); return ret; } lcd->cabc_mode = acx565akm_get_hw_cabc_mode(lcd); } - lcd->backlight->props.max_brightness = 255; - lcd->backlight->props.brightness = acx565akm_get_actual_brightness(lcd); - - acx565akm_bl_update_status_locked(lcd->backlight); + backlight_set_brightness(bd, acx565akm_get_actual_brightness(lcd)); + backlight_set_power_on(bd); + backlight_update_status(bd); return 0; } @@ -390,8 +378,6 @@ static void acx565akm_backlight_cleanup(struct acx565akm_panel *lcd) if (lcd->has_cabc) sysfs_remove_group(&lcd->backlight->dev.kobj, &acx565akm_cabc_attr_group); - - backlight_device_unregister(lcd->backlight); } /* ----------------------------------------------------------------------------- -- 2.25.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel