From: Mario Limonciello <mario.limoncie...@amd.com>

[Why]
OLED panels can be fully off, but this behavior is unexpected.

[How]
Ensure that minimum luminance is at least 1.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4338

Reviewed-by: Alex Hung <alex.h...@amd.com>
Signed-off-by: Mario Limonciello <mario.limoncie...@amd.com>
Signed-off-by: Ray Wu <ray...@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

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 c380aeb66ddd..9f071a0bd03b 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3644,13 +3644,15 @@ static void update_connector_ext_caps(struct 
amdgpu_dm_connector *aconnector)
 
        luminance_range = &conn_base->display_info.luminance_range;
 
-       if (luminance_range->max_luminance) {
-               caps->aux_min_input_signal = luminance_range->min_luminance;
+       if (luminance_range->max_luminance)
                caps->aux_max_input_signal = luminance_range->max_luminance;
-       } else {
-               caps->aux_min_input_signal = 0;
+       else
                caps->aux_max_input_signal = 512;
-       }
+
+       if (luminance_range->min_luminance)
+               caps->aux_min_input_signal = luminance_range->min_luminance;
+       else
+               caps->aux_min_input_signal = 1;
 
        min_input_signal_override = 
drm_get_panel_min_brightness_quirk(aconnector->drm_edid);
        if (min_input_signal_override >= 0)
-- 
2.43.0

Reply via email to