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

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
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -610,20 +610,3 @@ bool dcn31_is_abm_supported(struct dc *dc,
	}
	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);

}
+1 −1
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ static const struct hw_sequencer_funcs dcn31_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,
	.plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
	.update_mpcc = dcn20_update_mpcc,
+0 −1
Original line number Diff line number Diff line
@@ -1302,7 +1302,6 @@ static struct dce_hwseq *dcn31_hwseq_create(
		hws->regs = &hwseq_reg;
		hws->shifts = &hwseq_shift;
		hws->masks = &hwseq_mask;
		hws->wa.early_riommu_invalidation = true;
	}
	return hws;
}
+0 −1
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ struct dce_hwseq_wa {
	bool DEGVIDCN10_254;
	bool DEGVIDCN21;
	bool disallow_self_refresh_during_multi_plane_transition;
	bool early_riommu_invalidation;
};

struct hwseq_wa_state {