drm/amd/display: Correct non-OLED pre_T11_delay.
authorZhongwei Zhang <Zhongwei.Zhang@amd.com>
Tue, 13 May 2025 08:45:59 +0000 (16:45 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 3 Jun 2025 19:32:56 +0000 (15:32 -0400)
[Why]
Only OLED panels require non-zero pre_T11_delay defaultly.
Others should be controlled by power sequence.

[How]
For non OLED, pre_T11_delay delay in code should be zero.
Also post_T7_delay.

Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: Charlene Liu <charlene.liu@amd.com>
Signed-off-by: Zhongwei Zhang <Zhongwei.Zhang@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c

index 23bec5d25ed6c8928138b5e965ff6a5b0714f7b6..b88b2d6b4e811ff5dc8c4b72ec2ec860e96066fa 100644 (file)
@@ -952,8 +952,8 @@ void dce110_edp_backlight_control(
        struct dc_context *ctx = link->ctx;
        struct bp_transmitter_control cntl = { 0 };
        uint8_t pwrseq_instance = 0;
-       unsigned int pre_T11_delay = OLED_PRE_T11_DELAY;
-       unsigned int post_T7_delay = OLED_POST_T7_DELAY;
+       unsigned int pre_T11_delay = (link->dpcd_sink_ext_caps.bits.oled ? OLED_PRE_T11_DELAY : 0);
+       unsigned int post_T7_delay = (link->dpcd_sink_ext_caps.bits.oled ? OLED_POST_T7_DELAY : 0);
 
        if (dal_graphics_object_id_get_connector_id(link->link_enc->connector)
                != CONNECTOR_ID_EDP) {
@@ -1069,7 +1069,8 @@ void dce110_edp_backlight_control(
        if (!enable) {
                /*follow oem panel config's requirement*/
                pre_T11_delay += link->panel_config.pps.extra_pre_t11_ms;
-               msleep(pre_T11_delay);
+               if (pre_T11_delay)
+                       msleep(pre_T11_delay);
        }
 }