From: Austin Zheng <[email protected]>

[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 <[email protected]>
Signed-off-by: Austin Zheng <[email protected]>
Signed-off-by: James Lin <[email protected]>
---
 .../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},
                },
        },
-- 
2.43.0

Reply via email to