Skip to content

Commit a2ab248

Browse files
Taimur Hassanalexdeucher
authored andcommitted
drm/amd/display: Fix some HostVM parameters in DML
[Why] A number of DML parameters related to HostVM were either missing or being set incorrectly, which may cause inaccuracies in calculating margins and determining BW limitations. [How] Correct these values where needed and populate the missing values. Cc: [email protected] Reviewed-by: Nicholas Kazlauskas <[email protected]> Acked-by: Hamza Mahfooz <[email protected]> Signed-off-by: Taimur Hassan <[email protected]> Signed-off-by: Roman Li <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 7283877 commit a2ab248

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,39 @@ void dcn35_update_bw_bounding_box_fpu(struct dc *dc,
330330
dml_init_instance(&dc->dml, &dcn3_5_soc, &dcn3_5_ip,
331331
DML_PROJECT_DCN31);
332332

333+
/*copy to dml2, before dml2_create*/
334+
if (clk_table->num_entries > 2) {
335+
336+
for (i = 0; i < clk_table->num_entries; i++) {
337+
dc->dml2_options.bbox_overrides.clks_table.num_states =
338+
clk_table->num_entries;
339+
dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dcfclk_mhz =
340+
clock_limits[i].dcfclk_mhz;
341+
dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].fclk_mhz =
342+
clock_limits[i].fabricclk_mhz;
343+
dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dispclk_mhz =
344+
clock_limits[i].dispclk_mhz;
345+
dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dppclk_mhz =
346+
clock_limits[i].dppclk_mhz;
347+
dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].socclk_mhz =
348+
clock_limits[i].socclk_mhz;
349+
dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].memclk_mhz =
350+
clk_table->entries[i].memclk_mhz * clk_table->entries[i].wck_ratio;
351+
dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_dcfclk_levels =
352+
clk_table->num_entries;
353+
dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_fclk_levels =
354+
clk_table->num_entries;
355+
dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_dispclk_levels =
356+
clk_table->num_entries;
357+
dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_dppclk_levels =
358+
clk_table->num_entries;
359+
dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_socclk_levels =
360+
clk_table->num_entries;
361+
dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_memclk_levels =
362+
clk_table->num_entries;
363+
}
364+
}
365+
333366
/* Update latency values */
334367
dc->dml2_options.bbox_overrides.dram_clock_change_latency_us = dcn3_5_soc.dram_clock_change_latency_us;
335368

drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,9 +1057,12 @@ void map_dc_state_into_dml_display_cfg(struct dml2_context *dml2, struct dc_stat
10571057
}
10581058

10591059
//Generally these are set by referencing our latest BB/IP params in dcn32_resource.c file
1060-
dml_dispcfg->plane.GPUVMEnable = true;
1061-
dml_dispcfg->plane.GPUVMMaxPageTableLevels = 4;
1062-
dml_dispcfg->plane.HostVMEnable = false;
1060+
dml_dispcfg->plane.GPUVMEnable = dml2->v20.dml_core_ctx.ip.gpuvm_enable;
1061+
dml_dispcfg->plane.GPUVMMaxPageTableLevels = dml2->v20.dml_core_ctx.ip.gpuvm_max_page_table_levels;
1062+
dml_dispcfg->plane.HostVMEnable = dml2->v20.dml_core_ctx.ip.hostvm_enable;
1063+
dml_dispcfg->plane.HostVMMaxPageTableLevels = dml2->v20.dml_core_ctx.ip.hostvm_max_page_table_levels;
1064+
if (dml2->v20.dml_core_ctx.ip.hostvm_enable)
1065+
dml2->v20.dml_core_ctx.policy.AllowForPStateChangeOrStutterInVBlankFinal = dml_prefetch_support_uclk_fclk_and_stutter;
10631066

10641067
dml2_populate_pipe_to_plane_index_mapping(dml2, context);
10651068

0 commit comments

Comments
 (0)