aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0695-drm-amd-dal-Re-enable-interrupt-after-hotplug-notify.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0695-drm-amd-dal-Re-enable-interrupt-after-hotplug-notify.patch')
-rw-r--r--common/recipes-kernel/linux/files/0695-drm-amd-dal-Re-enable-interrupt-after-hotplug-notify.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0695-drm-amd-dal-Re-enable-interrupt-after-hotplug-notify.patch b/common/recipes-kernel/linux/files/0695-drm-amd-dal-Re-enable-interrupt-after-hotplug-notify.patch
new file mode 100644
index 00000000..17c3906d
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0695-drm-amd-dal-Re-enable-interrupt-after-hotplug-notify.patch
@@ -0,0 +1,55 @@
+From d3f85dbd65bbabe5f225a9ffe0c8715389392900 Mon Sep 17 00:00:00 2001
+From: Eric Yang <eric.yang2@amd.com>
+Date: Thu, 14 Jan 2016 17:41:51 -0500
+Subject: [PATCH 0695/1110] drm/amd/dal: Re-enable interrupt after hotplug
+ notify
+
+On S3 resume, re-enable interrupt after hotplug notify to guarantee
+OS knows about a disconnect that happend during S3 before any HPD
+can fire and change the connection status of the connector. This
+Fixes pageflip issues on S3 resume observed when multiple displays
+are connected.
+
+Signed-off-by: Eric Yang <eric.yang2@amd.com>
+Acked-by: Jordan Lazare <Jordan.Lazare@amd.com>
+---
+ drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 12 ++++++++----
+ 1 file changed, 8 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 6de5703..9879512 100644
+--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c
+@@ -801,10 +801,6 @@ static int dm_resume(void *handle)
+ DC_ACPI_CM_POWER_STATE_D0,
+ DC_VIDEO_POWER_ON);
+
+- /* program HPD filter*/
+- dc_resume(dm->dc);
+- /* resume IRQ */
+- amdgpu_dm_irq_resume(adev);
+ /* Do detection*/
+ list_for_each_entry(connector,
+ &ddev->mode_config.connector_list, head) {
+@@ -814,10 +810,18 @@ static int dm_resume(void *handle)
+ amdgpu_dm_update_connector_after_detect(aconnector);
+ }
+
++
+ drm_modeset_lock_all(ddev);
+ ret = dm_display_resume(ddev);
+ drm_modeset_unlock_all(ddev);
+
++ drm_kms_helper_hotplug_event(ddev);
++
++ /* program HPD filter*/
++ dc_resume(dm->dc);
++ /* resume IRQ */
++ amdgpu_dm_irq_resume(adev);
++
+ return ret;
+ }
+ const struct amd_ip_funcs amdgpu_dm_funcs = {
+--
+2.7.4
+