From 2b7af35e80372411f727915b0fc9964119628ce1 Mon Sep 17 00:00:00 2001 From: Zeyu Fan Date: Thu, 19 May 2016 14:59:04 -0400 Subject: [PATCH 1094/1110] drm/amd/dal: Not releasing target during suspend. Signed-off-by: Zeyu Fan Acked-by: Jordan Lazare Signed-off-by: Kalyan Alle --- drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c index 6a002df..bfa9e75 100644 --- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c @@ -472,11 +472,8 @@ static int dm_suspend(void *handle) drm_modeset_lock_all(adev->ddev); drm_for_each_crtc(crtc, adev->ddev) { struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc); - if (acrtc->target) { + if (acrtc->target) drm_crtc_vblank_off(crtc); - dc_target_release(acrtc->target); - acrtc->target = NULL; - } } drm_modeset_unlock_all(adev->ddev); @@ -652,6 +649,7 @@ int amdgpu_dm_display_resume(struct amdgpu_device *adev ) struct amdgpu_connector *aconnector; struct drm_connector *connector; int ret = 0; + struct drm_crtc *crtc; /* program HPD filter */ dc_resume(dm->dc); @@ -665,6 +663,14 @@ int amdgpu_dm_display_resume(struct amdgpu_device *adev ) */ amdgpu_dm_irq_resume_early(adev); + drm_modeset_lock_all(ddev); + drm_for_each_crtc(crtc, ddev) { + struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc); + if (acrtc->target) + drm_crtc_vblank_on(crtc); + } + drm_modeset_unlock_all(ddev); + /* Do detection*/ list_for_each_entry(connector, &ddev->mode_config.connector_list, head) { -- 2.7.4