]> 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>
Wed, 4 Jun 2025 12:42:00 +0000 (14:42 +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/dce110/dce110_hw_sequencer.c

index ebeb969ee180b81ac8781938d4db5f2c0f7186cf..327776eeb9f3ec071893bb406d675a9d13339f58 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 6f1785715dfb795bd0941b10113a1025233f0030..f95e5e767eb1a63fd33f3fb8a52d842d3b54ea5f 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 7b5c1498941dd6c3dd71a2af2c59fd58c00ccccb..d389eeb264a79ee9872ebf7adf2dad1db1e28f28 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);
        }