From: Mario Limonciello <supe...@kernel.org>

[Why]
There is a `scale` sysfs attribute that can be used to indicate when
non-linear brightness scaling is in use.  As Custom brightness curves
work by linear interpolation of points the scale is no longer linear.

[How]
Indicate non-linear scaling when custom brightness curves in use and
linear scaling otherwise.

Reviewed-by: Alex Hung <alex.h...@amd.com>
Signed-off-by: Mario Limonciello <supe...@kernel.org>
Signed-off-by: Wayne Lin <wayne....@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 242f98564261..7470e1a21279 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -5049,8 +5049,11 @@ amdgpu_dm_register_backlight_device(struct 
amdgpu_dm_connector *aconnector)
        } else
                props.brightness = props.max_brightness = MAX_BACKLIGHT_LEVEL;
 
-       if (caps->data_points && !(amdgpu_dc_debug_mask & 
DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE))
+       if (caps->data_points && !(amdgpu_dc_debug_mask & 
DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE)) {
                drm_info(drm, "Using custom brightness curve\n");
+               props.scale = BACKLIGHT_SCALE_NON_LINEAR;
+       } else
+               props.scale = BACKLIGHT_SCALE_LINEAR;
        props.type = BACKLIGHT_RAW;
 
        snprintf(bl_name, sizeof(bl_name), "amdgpu_bl%d",
-- 
2.43.0

Reply via email to