提交 82df77ae 编写于 作者: S Sung Lee 提交者: Alex Deucher

drm/amd/display: Populate hostvm parameter before DML calculation

[Why]
If the system does not have hostvm enabled, disabling it for
DML validation will allow more modes to pass at lower voltage
levels.

[How]
When initializing HostVM save state to hubbub and read back
when populating DML pipes from context.
Signed-off-by: NSung Lee <sung.lee@amd.com>
Acked-by: NBindu Ramamurthy <bindu.r@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 b8e0b3d6
...@@ -99,6 +99,8 @@ void dcn21_dchvm_init(struct hubbub *hubbub) ...@@ -99,6 +99,8 @@ void dcn21_dchvm_init(struct hubbub *hubbub)
//Poll until HOSTVM_PREFETCH_DONE = 1 //Poll until HOSTVM_PREFETCH_DONE = 1
REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100); REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100);
hubbub->riommu_active = true;
} }
} }
......
...@@ -1886,7 +1886,7 @@ static int dcn21_populate_dml_pipes_from_context( ...@@ -1886,7 +1886,7 @@ static int dcn21_populate_dml_pipes_from_context(
for (i = 0; i < pipe_cnt; i++) { for (i = 0; i < pipe_cnt; i++) {
pipes[i].pipe.src.hostvm = 1; pipes[i].pipe.src.hostvm = dc->res_pool->hubbub->riommu_active;
pipes[i].pipe.src.gpuvm = 1; pipes[i].pipe.src.gpuvm = 1;
} }
......
...@@ -157,6 +157,7 @@ struct hubbub_funcs { ...@@ -157,6 +157,7 @@ struct hubbub_funcs {
struct hubbub { struct hubbub {
const struct hubbub_funcs *funcs; const struct hubbub_funcs *funcs;
struct dc_context *ctx; struct dc_context *ctx;
bool riommu_active;
}; };
#endif #endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册