mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
drm/amdgpu/display: handle aux backlight in backlight_get_brightness
Need to fetch it via aux. Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
This commit is contained in:
@@ -3258,11 +3258,27 @@ static int amdgpu_dm_backlight_update_status(struct backlight_device *bd)
|
|||||||
static int amdgpu_dm_backlight_get_brightness(struct backlight_device *bd)
|
static int amdgpu_dm_backlight_get_brightness(struct backlight_device *bd)
|
||||||
{
|
{
|
||||||
struct amdgpu_display_manager *dm = bl_get_data(bd);
|
struct amdgpu_display_manager *dm = bl_get_data(bd);
|
||||||
int ret = dc_link_get_backlight_level(dm->backlight_link);
|
struct amdgpu_dm_backlight_caps caps;
|
||||||
|
|
||||||
if (ret == DC_ERROR_UNEXPECTED)
|
amdgpu_dm_update_backlight_caps(dm);
|
||||||
return bd->props.brightness;
|
caps = dm->backlight_caps;
|
||||||
return convert_brightness_to_user(&dm->backlight_caps, ret);
|
|
||||||
|
if (caps.aux_support) {
|
||||||
|
struct dc_link *link = (struct dc_link *)dm->backlight_link;
|
||||||
|
u32 avg, peak;
|
||||||
|
bool rc;
|
||||||
|
|
||||||
|
rc = dc_link_get_backlight_level_nits(link, &avg, &peak);
|
||||||
|
if (!rc)
|
||||||
|
return bd->props.brightness;
|
||||||
|
return convert_brightness_to_user(&caps, avg);
|
||||||
|
} else {
|
||||||
|
int ret = dc_link_get_backlight_level(dm->backlight_link);
|
||||||
|
|
||||||
|
if (ret == DC_ERROR_UNEXPECTED)
|
||||||
|
return bd->props.brightness;
|
||||||
|
return convert_brightness_to_user(&caps, ret);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct backlight_ops amdgpu_dm_backlight_ops = {
|
static const struct backlight_ops amdgpu_dm_backlight_ops = {
|
||||||
|
Reference in New Issue
Block a user