Skip to content

Commit

Permalink
drm/amd/display: Fix system hang while resume with TBT monitor
Browse files Browse the repository at this point in the history
[Why]
Connected with a Thunderbolt monitor and do the suspend and the system
may hang while resume.

The TBT monitor HPD will be triggered during the resume procedure
and call the drm_client_modeset_probe() while
struct drm_connector connector->dev->master is NULL.

It will mess up the pipe topology after resume.

[How]
Skip the TBT monitor HPD during the resume procedure because we
currently will probe the connectors after resume by default.

Reviewed-by: Wayne Lin <[email protected]>
Signed-off-by: Tom Chung <[email protected]>
Signed-off-by: Fangzhi Zuo <[email protected]>
Tested-by: Daniel Wheeler <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
  • Loading branch information
Tom Chung authored and lutzbichler committed Dec 8, 2024
1 parent c5381f8 commit c9647e6
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,12 @@ static void dmub_hpd_callback(struct amdgpu_device *adev,
return;
}

/* Skip DMUB HPD IRQ in suspend/resume. We will probe them later. */
if (notify->type == DMUB_NOTIFICATION_HPD && adev->in_suspend) {
DRM_INFO("Skip DMUB HPD IRQ callback in suspend/resume\n");
return;
}

link_index = notify->link_index;
link = adev->dm.dc->links[link_index];
dev = adev->dm.ddev;
Expand Down

0 comments on commit c9647e6

Please sign in to comment.