Commit af6902ec authored by Nicholas Kazlauskas's avatar Nicholas Kazlauskas Committed by Alex Deucher
Browse files

drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset



[Why]
The HW interrupt gets disabled after S3/S4/reset so we don't receive
notifications for HPD or AUX from DMUB - leading to timeout and
black screen with (or without) DPIA links connected.

[How]
Re-enable the interrupt after S3/S4/reset like we do for the other
DC interrupts.

Guard both instances of the outbox interrupt enable or we'll hang
during restore on ASIC that don't support it.

Fixes: 6eff272d ("drm/amd/display: Fix DPIA outbox timeout after GPU reset")

Reviewed-by: default avatarJude Shih <Jude.Shih@amd.com>
Acked-by: default avatarPavle Kotarac <Pavle.Kotarac@amd.com>
Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a687efed
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -2576,6 +2576,7 @@ static int dm_resume(void *handle)
		 */
		link_enc_cfg_init(dm->dc, dc_state);

		if (dc_enable_dmub_notifications(adev->dm.dc))
			amdgpu_dm_outbox_init(adev);

		r = dm_dmub_hw_init(adev);
@@ -2625,6 +2626,10 @@ static int dm_resume(void *handle)
	/* TODO: Remove dc_state->dccg, use dc->dccg directly. */
	dc_resource_state_construct(dm->dc, dm_state->context);

	/* Re-enable outbox interrupts for DPIA. */
	if (dc_enable_dmub_notifications(adev->dm.dc))
		amdgpu_dm_outbox_init(adev);

	/* Before powering on DC we need to re-initialize DMUB. */
	r = dm_dmub_hw_init(adev);
	if (r)