From: Sung Lee <[email protected]>

[Why]
If system is overclocked, only 1 bounding box state will
be sent by SMU. This results in an empty state being copied
for DML calculations causing black screens and corruption.

[How]
Fully populate bounding box before duplicating last state.

Signed-off-by: Sung Lee <[email protected]>
Reviewed-by: Tony Cheng <[email protected]>
Acked-by: Qingqing Zhuo <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c 
b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
index 674376428916..d6d78438ea08 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
@@ -1616,11 +1616,11 @@ static void update_bw_bounding_box(struct dc *dc, 
struct clk_bw_params *bw_param
                dcn2_1_soc.clock_limits[i] = clock_limits[i];
        if (clk_table->num_entries) {
                dcn2_1_soc.num_states = clk_table->num_entries + 1;
+               /* fill in min DF PState */
+               dcn2_1_soc.clock_limits[1] = 
construct_low_pstate_lvl(clk_table, closest_clk_lvl);
                /* duplicate last level */
                dcn2_1_soc.clock_limits[dcn2_1_soc.num_states] = 
dcn2_1_soc.clock_limits[dcn2_1_soc.num_states - 1];
                dcn2_1_soc.clock_limits[dcn2_1_soc.num_states].state = 
dcn2_1_soc.num_states;
-               /* fill in min DF PState */
-               dcn2_1_soc.clock_limits[1] = 
construct_low_pstate_lvl(clk_table, closest_clk_lvl);
        }
 
        dml_init_instance(&dc->dml, &dcn2_1_soc, &dcn2_1_ip, DML_PROJECT_DCN21);
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to