1 |
From bb7dfcf9824a48cbde67bbf4f5180f8901a7373d Mon Sep 17 00:00:00 2001 |
2 |
From: Sasha Levin <sashal@kernel.org> |
3 |
Date: Thu, 20 Oct 2022 11:46:44 -0400 |
4 |
Subject: drm/amd/display: Limit dcn32 to 1950Mhz display clock |
5 |
|
6 |
From: Jun Lei <jun.lei@amd.com> |
7 |
|
8 |
[ Upstream commit e59843c4cdd68a369591630088171eeacce9859f ] |
9 |
|
10 |
[why] |
11 |
Hardware team recommends we limit dispclock to 1950Mhz for all DCN3.2.x |
12 |
|
13 |
[how] |
14 |
Limit to 1950 when initializing clocks. |
15 |
|
16 |
Tested-by: Mark Broadworth <mark.broadworth@amd.com> |
17 |
Reviewed-by: Alvin Lee <Alvin.Lee2@amd.com> |
18 |
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> |
19 |
Signed-off-by: Jun Lei <jun.lei@amd.com> |
20 |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
21 |
Cc: stable@vger.kernel.org # 6.0.x |
22 |
Signed-off-by: Sasha Levin <sashal@kernel.org> |
23 |
--- |
24 |
.../gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 8 ++++---- |
25 |
1 file changed, 4 insertions(+), 4 deletions(-) |
26 |
|
27 |
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c |
28 |
index f4c7bbd9961a..f3090ead9af5 100644 |
29 |
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c |
30 |
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c |
31 |
@@ -157,6 +157,7 @@ void dcn32_init_clocks(struct clk_mgr *clk_mgr_base) |
32 |
struct clk_mgr_internal *clk_mgr = TO_CLK_MGR_INTERNAL(clk_mgr_base); |
33 |
unsigned int num_levels; |
34 |
struct clk_limit_num_entries *num_entries_per_clk = &clk_mgr_base->bw_params->clk_table.num_entries_per_clk; |
35 |
+ unsigned int i; |
36 |
|
37 |
memset(&(clk_mgr_base->clks), 0, sizeof(struct dc_clocks)); |
38 |
clk_mgr_base->clks.p_state_change_support = true; |
39 |
@@ -205,18 +206,17 @@ void dcn32_init_clocks(struct clk_mgr *clk_mgr_base) |
40 |
clk_mgr->dpm_present = true; |
41 |
|
42 |
if (clk_mgr_base->ctx->dc->debug.min_disp_clk_khz) { |
43 |
- unsigned int i; |
44 |
- |
45 |
for (i = 0; i < num_levels; i++) |
46 |
if (clk_mgr_base->bw_params->clk_table.entries[i].dispclk_mhz |
47 |
< khz_to_mhz_ceil(clk_mgr_base->ctx->dc->debug.min_disp_clk_khz)) |
48 |
clk_mgr_base->bw_params->clk_table.entries[i].dispclk_mhz |
49 |
= khz_to_mhz_ceil(clk_mgr_base->ctx->dc->debug.min_disp_clk_khz); |
50 |
} |
51 |
+ for (i = 0; i < num_levels; i++) |
52 |
+ if (clk_mgr_base->bw_params->clk_table.entries[i].dispclk_mhz > 1950) |
53 |
+ clk_mgr_base->bw_params->clk_table.entries[i].dispclk_mhz = 1950; |
54 |
|
55 |
if (clk_mgr_base->ctx->dc->debug.min_dpp_clk_khz) { |
56 |
- unsigned int i; |
57 |
- |
58 |
for (i = 0; i < num_levels; i++) |
59 |
if (clk_mgr_base->bw_params->clk_table.entries[i].dppclk_mhz |
60 |
< khz_to_mhz_ceil(clk_mgr_base->ctx->dc->debug.min_dpp_clk_khz)) |
61 |
-- |
62 |
2.35.1 |
63 |
|