diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/files/1094-drm-amd-dal-Not-releasing-target-during-suspend.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/files/1094-drm-amd-dal-Not-releasing-target-during-suspend.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/files/1094-drm-amd-dal-Not-releasing-target-during-suspend.patch b/meta-amdfalconx86/recipes-kernel/linux/files/1094-drm-amd-dal-Not-releasing-target-during-suspend.patch new file mode 100644 index 00000000..41f42ce3 --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/files/1094-drm-amd-dal-Not-releasing-target-during-suspend.patch @@ -0,0 +1,55 @@ +From 2b7af35e80372411f727915b0fc9964119628ce1 Mon Sep 17 00:00:00 2001 +From: Zeyu Fan <Zeyu.Fan@amd.com> +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 <Zeyu.Fan@amd.com> +Acked-by: Jordan Lazare <Jordan.Lazare@amd.com> +Signed-off-by: Kalyan Alle <kalyan.alle@amd.com> +--- + 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 + |