Commit 234b4fd9 authored by Eric Yang's avatar Eric Yang Committed by Alex Deucher

drm/amd/display: refactor riommu invalidation wa

[Why]
A cleaner solution, only done once on boot.

[How]
Remove previous workaround and configure an extra
vmid one time on boot
Reviewed-by: default avatarKazlauskas Nicholas <Nicholas.Kazlauskas@amd.com>
Acked-by: default avatarSolomon Chiu <solomon.chiu@amd.com>
Signed-off-by: default avatarEric Yang <Eric.Yang2@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 90a92662
...@@ -610,20 +610,3 @@ bool dcn31_is_abm_supported(struct dc *dc, ...@@ -610,20 +610,3 @@ bool dcn31_is_abm_supported(struct dc *dc,
} }
return false; return false;
} }
static void apply_riommu_invalidation_wa(struct dc *dc)
{
struct dce_hwseq *hws = dc->hwseq;
if (!hws->wa.early_riommu_invalidation)
return;
REG_UPDATE(DCHUBBUB_ARB_HOSTVM_CNTL, DISABLE_HOSTVM_FORCE_ALLOW_PSTATE, 0);
}
void dcn31_init_pipes(struct dc *dc, struct dc_state *context)
{
dcn10_init_pipes(dc, context);
apply_riommu_invalidation_wa(dc);
}
...@@ -104,7 +104,7 @@ static const struct hw_sequencer_funcs dcn31_funcs = { ...@@ -104,7 +104,7 @@ static const struct hw_sequencer_funcs dcn31_funcs = {
}; };
static const struct hwseq_private_funcs dcn31_private_funcs = { static const struct hwseq_private_funcs dcn31_private_funcs = {
.init_pipes = dcn31_init_pipes, .init_pipes = dcn10_init_pipes,
.update_plane_addr = dcn20_update_plane_addr, .update_plane_addr = dcn20_update_plane_addr,
.plane_atomic_disconnect = dcn10_plane_atomic_disconnect, .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
.update_mpcc = dcn20_update_mpcc, .update_mpcc = dcn20_update_mpcc,
......
...@@ -1302,7 +1302,6 @@ static struct dce_hwseq *dcn31_hwseq_create( ...@@ -1302,7 +1302,6 @@ static struct dce_hwseq *dcn31_hwseq_create(
hws->regs = &hwseq_reg; hws->regs = &hwseq_reg;
hws->shifts = &hwseq_shift; hws->shifts = &hwseq_shift;
hws->masks = &hwseq_mask; hws->masks = &hwseq_mask;
hws->wa.early_riommu_invalidation = true;
} }
return hws; return hws;
} }
......
...@@ -41,7 +41,6 @@ struct dce_hwseq_wa { ...@@ -41,7 +41,6 @@ struct dce_hwseq_wa {
bool DEGVIDCN10_254; bool DEGVIDCN10_254;
bool DEGVIDCN21; bool DEGVIDCN21;
bool disallow_self_refresh_during_multi_plane_transition; bool disallow_self_refresh_during_multi_plane_transition;
bool early_riommu_invalidation;
}; };
struct hwseq_wa_state { struct hwseq_wa_state {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment