]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/display: Move DPM clk read to clk_mgr_construct in DCN42
authorIvan Lipski <ivan.lipski@amd.com>
Wed, 4 Mar 2026 01:07:58 +0000 (20:07 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 23 Mar 2026 18:15:49 +0000 (14:15 -0400)
[Why&How]
The DPM clocks on DCN42 are currently read on every dm_resume, which can
cause in gpu memory freeing while the device is still in suspend.

Move the DPM clock read functionality to clk_mgr_construct() so it
completes once on driver enablement.

Reviewed-by: Charlene Liu <charlene.liu@amd.com>
Signed-off-by: Ivan Lipski <ivan.lipski@amd.com>
Signed-off-by: Dmytro Laktyushkin <dmytro.laktyushkin@amd.com>
Signed-off-by: Chuanyu Tseng <chuanyu.tseng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn42/dcn42_clk_mgr.c

index 24834f89711df5765881bd0e2bbcb5bd44476b0e..5671fe481d15058968f2ab8e9814b6afbb179d55 100644 (file)
@@ -1146,6 +1146,11 @@ void dcn42_clk_mgr_construct(
                        dcn42_bw_params.num_channels = ctx->dc_bios->integrated_info->ma_channel_number ? ctx->dc_bios->integrated_info->ma_channel_number : 1;
                        clk_mgr->base.base.dprefclk_khz = dcn42_smu_get_dprefclk(&clk_mgr->base);
                        clk_mgr->base.base.clks.ref_dtbclk_khz = dcn42_smu_get_dtbclk(&clk_mgr->base);
+
+                       clk_mgr->base.base.bw_params = &dcn42_bw_params;
+
+                       if (clk_mgr->base.smu_present)
+                               dcn42_get_smu_clocks(&clk_mgr->base);
                }
                /* in case we don't get a value from the BIOS, use default */
                if (clk_mgr->base.base.dentist_vco_freq_khz == 0)