Skip to content

Commit fd3e3a0

Browse files
Nicholas Kazlauskasaaliuamd
authored andcommitted
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: 19fde255f248 ("drm/amd/display: Fix DPIA outbox timeout after GPU reset") Reviewed-by: Jude Shih <[email protected]> Acked-by: Pavle Kotarac <[email protected]> Signed-off-by: Nicholas Kazlauskas <[email protected]>
1 parent 2d31404 commit fd3e3a0

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2452,7 +2452,8 @@ static int dm_resume(void *handle)
24522452
if (amdgpu_in_reset(adev)) {
24532453
dc_state = dm->cached_dc_state;
24542454

2455-
amdgpu_dm_outbox_init(adev);
2455+
if (dc_enable_dmub_notifications(adev->dm.dc))
2456+
amdgpu_dm_outbox_init(adev);
24562457

24572458
r = dm_dmub_hw_init(adev);
24582459
if (r)
@@ -2503,6 +2504,10 @@ static int dm_resume(void *handle)
25032504
dc_resource_state_construct(dm->dc, dm_state->context);
25042505
#endif
25052506

2507+
/* Re-enable outbox interrupts for DPIA. */
2508+
if (dc_enable_dmub_notifications(adev->dm.dc))
2509+
amdgpu_dm_outbox_init(adev);
2510+
25062511
/* Before powering on DC we need to re-initialize DMUB. */
25072512
r = dm_dmub_hw_init(adev);
25082513
if (r)

0 commit comments

Comments
 (0)