drm/amd/display: w/a for dcn315 inconsistent smu clock table
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Tue, 14 Mar 2023 14:20:33 +0000 (10:20 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 31 Mar 2023 15:18:54 +0000 (11:18 -0400)
[Why & How]
w/a for dcn315 inconsistent smu clock.

Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@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

index a737782b2840c11b7fd97b32f65b938c868d5379..b737cbc468f55237bc1336a56f495066ed0eec8e 100644 (file)
@@ -522,6 +522,11 @@ static void dcn315_clk_mgr_helper_populate_bw_params(
                bw_params->clk_table.entries[i].dcfclk_mhz = clock_table->DcfClocks[0];
                bw_params->clk_table.entries[i].wck_ratio = 1;
                i++;
+       } else if (clock_table->NumDcfClkLevelsEnabled != clock_table->NumSocClkLevelsEnabled) {
+               bw_params->clk_table.entries[i-1].voltage = clock_table->SocVoltage[clock_table->NumSocClkLevelsEnabled - 1];
+               bw_params->clk_table.entries[i-1].socclk_mhz = clock_table->SocClocks[clock_table->NumSocClkLevelsEnabled - 1];
+               bw_params->clk_table.entries[i-1].dispclk_mhz = clock_table->DispClocks[clock_table->NumDispClkLevelsEnabled - 1];
+               bw_params->clk_table.entries[i-1].dppclk_mhz = clock_table->DppClocks[clock_table->NumDispClkLevelsEnabled - 1];
        }
        bw_params->clk_table.num_entries = i;