]> www.infradead.org Git - nvme.git/commitdiff
drm/amd/display: Populate socclk entries for dcn2.1
authorRoman Li <roman.li@amd.com>
Wed, 24 Feb 2021 02:28:25 +0000 (21:28 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Apr 2021 20:39:59 +0000 (16:39 -0400)
[Why]
Dcn2.1 socclk entries in bandwidth params are not initialized.
They are not used now, but will be needed for dml validation.

[How]
Populate socclk bw params from dpm clock table

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: Solomon Chiu <solomon.chiu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c

index 01b1853b7750dfb05fcdb1cb733d8b33b3f7529e..887a54246bde061ab1b0a5156d0945832351af4a 100644 (file)
@@ -797,7 +797,18 @@ static struct wm_table lpddr4_wm_table_rn = {
                },
        }
 };
+static unsigned int find_socclk_for_voltage(struct dpm_clocks *clock_table, unsigned int voltage)
+{
+       int i;
+
+       for (i = 0; i < PP_SMU_NUM_SOCCLK_DPM_LEVELS; i++) {
+               if (clock_table->SocClocks[i].Vol == voltage)
+                       return clock_table->SocClocks[i].Freq;
+       }
 
+       ASSERT(0);
+       return 0;
+}
 static unsigned int find_dcfclk_for_voltage(struct dpm_clocks *clock_table, unsigned int voltage)
 {
        int i;
@@ -841,6 +852,8 @@ static void rn_clk_mgr_helper_populate_bw_params(struct clk_bw_params *bw_params
                bw_params->clk_table.entries[i].memclk_mhz = clock_table->MemClocks[j].Freq;
                bw_params->clk_table.entries[i].voltage = clock_table->FClocks[j].Vol;
                bw_params->clk_table.entries[i].dcfclk_mhz = find_dcfclk_for_voltage(clock_table, clock_table->FClocks[j].Vol);
+               bw_params->clk_table.entries[i].socclk_mhz = find_socclk_for_voltage(clock_table,
+                                                                       bw_params->clk_table.entries[i].voltage);
        }
 
        bw_params->vram_type = bios_info->memory_type;