mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
drm/amd/display: implement workaround for riommu related hang
[Why] During S4/S5/reboot, sometimes riommu invalidation request arrive too early, DCN may be unable to respond to the invalidation request resulting in pstate hang. [How] VBIOS will force allow pstate for riommu invalidation and driver will clear it after powering down display pipes. Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Eric Yang <Eric.Yang2@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
#include "dce/dmub_outbox.h"
|
||||
#include "dc_link_dp.h"
|
||||
#include "inc/link_dpcd.h"
|
||||
#include "dcn10/dcn10_hw_sequencer.h"
|
||||
|
||||
#define DC_LOGGER_INIT(logger)
|
||||
|
||||
@@ -594,3 +595,20 @@ 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);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user