]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amd/display: remove minimum Dispclk and apply oem panel timing.
authorCharlene Liu <Charlene.Liu@amd.com>
Mon, 3 Mar 2025 18:53:16 +0000 (13:53 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 10 Mar 2025 17:35:55 +0000 (13:35 -0400)
[why & how]
1. apply oem panel timing (not only on OLED)
2. remove MIN_DPP_DISP_CLK request in driver.

This fix will apply for dcn31x but not
sync with DML's output.

Reviewed-by: Ovidiu Bunea <ovidiu.bunea@amd.com>
Signed-off-by: Charlene Liu <Charlene.Liu@amd.com>
Signed-off-by: Tom Chung <chiahsuan.chung@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/clk_mgr/dcn315/dcn315_clk_mgr.c
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c

index a0fb4481d2f1b10224daf3b0113f8d068a233e6a..19a15acd15095771ac0ad45a480621fdaa793ad0 100644 (file)
@@ -194,8 +194,6 @@ static void dcn315_update_clocks(struct clk_mgr *clk_mgr_base,
        // workaround: Limit dppclk to 100Mhz to avoid lower eDP panel switch to plus 4K monitor underflow.
        if (new_clocks->dppclk_khz < MIN_DPP_DISP_CLK)
                new_clocks->dppclk_khz = MIN_DPP_DISP_CLK;
-       if (new_clocks->dispclk_khz < MIN_DPP_DISP_CLK)
-               new_clocks->dispclk_khz = MIN_DPP_DISP_CLK;
 
        if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr->base.clks.dppclk_khz)) {
                if (clk_mgr->base.clks.dppclk_khz > new_clocks->dppclk_khz)
index c3e50c3aaa609ee5798f291d2d150deef88a1f2d..4b19d9cf27cee250894539628b35eb21b348454b 100644 (file)
@@ -201,8 +201,6 @@ static void dcn316_update_clocks(struct clk_mgr *clk_mgr_base,
        // workaround: Limit dppclk to 100Mhz to avoid lower eDP panel switch to plus 4K monitor underflow.
        if (new_clocks->dppclk_khz < 100000)
                new_clocks->dppclk_khz = 100000;
-       if (new_clocks->dispclk_khz < 100000)
-               new_clocks->dispclk_khz = 100000;
 
        if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr->base.clks.dppclk_khz)) {
                if (clk_mgr->base.clks.dppclk_khz > new_clocks->dppclk_khz)
index dbc6e533dcac0e61daf578ea1e44123a84e4dc5e..5656d10368add3e590c5f4cf8b6f58942931114e 100644 (file)
@@ -1066,7 +1066,8 @@ void dce110_edp_backlight_control(
                        DC_LOG_DC("edp_receiver_ready_T9 skipped\n");
        }
 
-       if (!enable && link->dpcd_sink_ext_caps.bits.oled) {
+       if (!enable) {
+               /*follow oem panel config's requirement*/
                pre_T11_delay += link->panel_config.pps.extra_pre_t11_ms;
                msleep(pre_T11_delay);
        }