From 255e2d35051e01605e9cc9f636d139c5f82df3de Mon Sep 17 00:00:00 2001 From: Austin Zheng Date: Fri, 24 Jul 2026 17:38:53 -0400 Subject: [PATCH] drm/amd/display: Update Derates And Set Default Per-DPM Derates [Why/How] Adjusted derates to allow DPM0 to be used on certain display configs. For DCN42, MALL derates are not relevant so they can be modified to prevent DPMM from rounding up to the next DPM level. Also set the default DPM0 derates that can be used. Reviewed-by: Dillon Varone Signed-off-by: Austin Zheng Signed-off-by: James Lin Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher --- .../dml2_0/dml21/inc/bounding_boxes/dcn42_soc_bb.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/inc/bounding_boxes/dcn42_soc_bb.h b/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/inc/bounding_boxes/dcn42_soc_bb.h index 52f906e41fb4..04c5f09499ac 100644 --- a/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/inc/bounding_boxes/dcn42_soc_bb.h +++ b/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/inc/bounding_boxes/dcn42_soc_bb.h @@ -11,7 +11,7 @@ static const struct dml2_soc_qos_parameters dml_dcn42_variant_a_soc_qos_params = .derate_table = { .system_active_urgent = { .dram_derate_percent_pixel = 65, - .dram_derate_percent_vm = 30, + .dram_derate_percent_vm = 50, .dram_derate_percent_pixel_and_vm = 60, .fclk_derate_percent = 80, .dcfclk_derate_percent = 80, @@ -24,11 +24,11 @@ static const struct dml2_soc_qos_parameters dml_dcn42_variant_a_soc_qos_params = .dcfclk_derate_percent = 80, }, .dcn_mall_prefetch_average = { - .dram_derate_percent_pixel = 30, + .dram_derate_percent_pixel = 33, .dram_derate_percent_vm = 30, .dram_derate_percent_pixel_and_vm = 30, - .fclk_derate_percent = 60, - .dcfclk_derate_percent = 60, + .fclk_derate_percent = 66, + .dcfclk_derate_percent = 66, }, .system_idle_average = { .dram_derate_percent_pixel = 30, @@ -39,13 +39,17 @@ static const struct dml2_soc_qos_parameters dml_dcn42_variant_a_soc_qos_params = }, }, .derate_table_per_dpm = { + // DPM0 can have slightly higher derate values. Rest of the DPMs should match the global values. .dram_per_dpm_derate_pixel = { + {.derate_percent = 33, .clk_upperbound_threshold_khz = 400000}, {.derate_percent = 30, .clk_upperbound_threshold_khz = 0}, }, .fclk_per_dpm_derate = { + {.derate_percent = 66, .clk_upperbound_threshold_khz = 400000}, {.derate_percent = 60, .clk_upperbound_threshold_khz = 0}, }, .dcfclk_per_dpm_derate = { + {.derate_percent = 66, .clk_upperbound_threshold_khz = 200000}, {.derate_percent = 60, .clk_upperbound_threshold_khz = 0}, }, },