]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:12:49 +0000 (11:12 +0200)
[ Upstream commit 756e58e83e89d372b94269c0cde61fe55da76947 ]

[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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
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 827b24b3442adb00f624423cbd6a214cd51723e9..e4d22f74f9869166b61af7f57af8400608425774 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 37c39756fece4ee4e7b27980b7371eb9ad813dfc..49efea0c8fcffa09b698e1bf28589e6c8de677c8 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 fc4fb4055ab004d96494deee7b3f8f4784daa811..94ceccfc049824230fbb5dd8134e55c30f74ad6e 100644 (file)
@@ -1065,7 +1065,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);
        }