From: Gabe Teeger <gabe.tee...@amd.com>

[Why]
There is underflow and flickering occuring. The
underflow stops when hostvm is forced to active.
According to policy, hostvm should be enabled if riommu
is active, but this is not taken into account when
deciding whether to enable hostvm.

[What]
For DCN314, set hostvm to true if riommu is active.

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlaus...@amd.com>
Acked-by: Qingqing Zhuo <qingqing.z...@amd.com>
Signed-off-by: Gabe Teeger <gabe.tee...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c 
b/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c
index acda3e1babd4..c52b76610bd2 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c
@@ -308,6 +308,10 @@ int dcn314_populate_dml_pipes_from_context_fpu(struct dc 
*dc, struct dc_state *c
                                pipe->plane_state->src_rect.width < 
pipe->plane_state->dst_rect.width))
                        upscaled = true;
 
+               /* Apply HostVM policy - either based on hypervisor globally 
enabled, or rIOMMU active */
+               if (dc->debug.dml_hostvm_override == DML_HOSTVM_NO_OVERRIDE)
+                       pipes[i].pipe.src.hostvm = 
dc->vm_pa_config.is_hvm_enabled || dc->res_pool->hubbub->riommu_active;
+
                /*
                 * Immediate flip can be set dynamically after enabling the 
plane.
                 * We need to require support for immediate flip or underflow 
can be
-- 
2.34.1

Reply via email to