- Use macros for initialization - Replace direct access to backlight_properties with get and set operations Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx> Cc: Alex Deucher <alexander.deucher@xxxxxxx> Cc: Christian König <christian.koenig@xxxxxxx> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx --- drivers/gpu/drm/radeon/atombios_encoders.c | 24 +++++++++---------- .../gpu/drm/radeon/radeon_legacy_encoders.c | 16 +++++-------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c index cc5ee1b3af84..300bec94dbff 100644 --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c @@ -145,14 +145,15 @@ atombios_set_backlight_level(struct radeon_encoder *radeon_encoder, u8 level) static u8 radeon_atom_bl_level(struct backlight_device *bd) { u8 level; + int brightness = backlight_get_brightness(bd); /* Convert brightness to hardware level */ - if (bd->props.brightness < 0) + if (brightness < 0) level = 0; - else if (bd->props.brightness > RADEON_MAX_BL_LEVEL) + else if (brightness > RADEON_MAX_BL_LEVEL) level = RADEON_MAX_BL_LEVEL; else - level = bd->props.brightness; + level = brightness; return level; } @@ -185,12 +186,13 @@ static const struct backlight_ops radeon_atom_backlight_ops = { void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, struct drm_connector *drm_connector) { + DECLARE_BACKLIGHT_INIT_RAW(props, 0, RADEON_MAX_BL_LEVEL); struct drm_device *dev = radeon_encoder->base.dev; struct radeon_device *rdev = dev->dev_private; struct backlight_device *bd; - struct backlight_properties props; struct radeon_backlight_privdata *pdata; struct radeon_encoder_atom_dig *dig; + int brightness; char bl_name[16]; /* Mac laptops with multiple GPUs use the gmux driver for backlight @@ -215,9 +217,6 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, goto error; } - memset(&props, 0, sizeof(props)); - props.max_brightness = RADEON_MAX_BL_LEVEL; - props.type = BACKLIGHT_RAW; snprintf(bl_name, sizeof(bl_name), "radeon_bl%d", dev->primary->index); bd = backlight_device_register(bl_name, drm_connector->kdev, @@ -232,16 +231,17 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, dig = radeon_encoder->enc_priv; dig->bl_dev = bd; - bd->props.brightness = radeon_atom_backlight_get_brightness(bd); + brightness = radeon_atom_backlight_get_brightness(bd); /* Set a reasonable default here if the level is 0 otherwise * fbdev will attempt to turn the backlight on after console * unblanking and it will try and restore 0 which turns the backlight * off again. */ - if (bd->props.brightness == 0) - bd->props.brightness = RADEON_MAX_BL_LEVEL; - bd->props.power = FB_BLANK_UNBLANK; - backlight_update_status(bd); + + if (brightness == 0) + brightness = RADEON_MAX_BL_LEVEL; + + backlight_enable_brightness(bd, brightness); DRM_INFO("radeon atom DIG backlight initialized\n"); rdev->mode_info.bl_encoder = radeon_encoder; diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c index 44d060f75318..55e656acaedb 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c @@ -323,14 +323,15 @@ static uint8_t radeon_legacy_lvds_level(struct backlight_device *bd) { struct radeon_backlight_privdata *pdata = bl_get_data(bd); uint8_t level; + int brightness = backlight_get_brightness(bd); /* Convert brightness to hardware level */ - if (bd->props.brightness < 0) + if (brightness < 0) level = 0; - else if (bd->props.brightness > RADEON_MAX_BL_LEVEL) + else if (brightness > RADEON_MAX_BL_LEVEL) level = RADEON_MAX_BL_LEVEL; else - level = bd->props.brightness; + level = brightness; if (pdata->negative) level = RADEON_MAX_BL_LEVEL - level; @@ -371,10 +372,10 @@ static const struct backlight_ops radeon_backlight_ops = { void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, struct drm_connector *drm_connector) { + DECLARE_BACKLIGHT_INIT_RAW(props, 0, RADEON_MAX_BL_LEVEL); struct drm_device *dev = radeon_encoder->base.dev; struct radeon_device *rdev = dev->dev_private; struct backlight_device *bd; - struct backlight_properties props; struct radeon_backlight_privdata *pdata; uint8_t backlight_level; char bl_name[16]; @@ -394,9 +395,6 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, goto error; } - memset(&props, 0, sizeof(props)); - props.max_brightness = RADEON_MAX_BL_LEVEL; - props.type = BACKLIGHT_RAW; snprintf(bl_name, sizeof(bl_name), "radeon_bl%d", dev->primary->index); bd = backlight_device_register(bl_name, drm_connector->kdev, @@ -443,9 +441,7 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, lvds->bl_dev = bd; } - bd->props.brightness = radeon_legacy_backlight_get_brightness(bd); - bd->props.power = FB_BLANK_UNBLANK; - backlight_update_status(bd); + backlight_enable_brightness(bd, radeon_legacy_backlight_get_brightness(bd)); DRM_INFO("radeon legacy LVDS backlight initialized\n"); rdev->mode_info.bl_encoder = radeon_encoder; -- 2.25.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel