diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0892-drm-amd-dal-enable-hpd-rx-irqs-earlier-on-resume.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0892-drm-amd-dal-enable-hpd-rx-irqs-earlier-on-resume.patch | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/common/recipes-kernel/linux/files/0892-drm-amd-dal-enable-hpd-rx-irqs-earlier-on-resume.patch b/common/recipes-kernel/linux/files/0892-drm-amd-dal-enable-hpd-rx-irqs-earlier-on-resume.patch deleted file mode 100644 index aaf9e23b..00000000 --- a/common/recipes-kernel/linux/files/0892-drm-amd-dal-enable-hpd-rx-irqs-earlier-on-resume.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 692020a27565d2c20016de433e81108e48bbdd20 Mon Sep 17 00:00:00 2001 -From: Mykola Lysenko <Mykola.Lysenko@amd.com> -Date: Wed, 9 Mar 2016 01:15:00 -0500 -Subject: [PATCH 0892/1110] drm/amd/dal: enable hpd rx irqs earlier on resume - -This is needed to correctly process MST mode set - -Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com> -Acked-by: Harry Wentland <harry.wentland@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 12 ++++++++--- - drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c | 26 +++++++++++++++++++++-- - drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.h | 8 +++---- - 3 files changed, 37 insertions(+), 9 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 bf4ad69..c06f126 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c -@@ -583,6 +583,15 @@ int amdgpu_dm_display_resume(struct amdgpu_device *adev ) - struct drm_connector *connector; - int ret = 0; - -+ /* program HPD filter */ -+ dc_resume(dm->dc); -+ -+ /* -+ * early enable HPD Rx IRQ, should be done before set mode as short -+ * pulse interrupts are used for MST -+ */ -+ amdgpu_dm_irq_resume_early(adev); -+ - /* Do detection*/ - list_for_each_entry(connector, - &ddev->mode_config.connector_list, head) { -@@ -606,9 +615,6 @@ int amdgpu_dm_display_resume(struct amdgpu_device *adev ) - - drm_kms_helper_hotplug_event(ddev); - -- /* program HPD filter*/ -- dc_resume(dm->dc); -- /* resume IRQ */ - amdgpu_dm_irq_resume(adev); - - return ret; -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c -index 2757c5c..f6d7920 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c -@@ -522,8 +522,30 @@ int amdgpu_dm_irq_suspend( - return 0; - } - --int amdgpu_dm_irq_resume( -- struct amdgpu_device *adev) -+int amdgpu_dm_irq_resume_early(struct amdgpu_device *adev) -+{ -+ int src; -+ struct list_head *hnd_list_h, *hnd_list_l; -+ unsigned long irq_table_flags; -+ -+ DM_IRQ_TABLE_LOCK(adev, irq_table_flags); -+ -+ DRM_DEBUG_KMS("DM_IRQ: early resume\n"); -+ -+ /* re-enable short pulse interrupts HW interrupt */ -+ for (src = DC_IRQ_SOURCE_HPD1RX; src < DC_IRQ_SOURCE_HPD6RX + 1; src++) { -+ hnd_list_l = &adev->dm.irq_handler_list_low_tab[src].head; -+ hnd_list_h = &adev->dm.irq_handler_list_high_tab[src]; -+ if (!list_empty(hnd_list_l) || !list_empty(hnd_list_h)) -+ dc_interrupt_set(adev->dm.dc, src, true); -+ } -+ -+ DM_IRQ_TABLE_UNLOCK(adev, irq_table_flags); -+ -+ return 0; -+} -+ -+int amdgpu_dm_irq_resume(struct amdgpu_device *adev) - { - int src; - struct list_head *hnd_list_h, *hnd_list_l; -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.h b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.h -index afedb50..9339861 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.h -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.h -@@ -109,14 +109,14 @@ void amdgpu_dm_hpd_fini(struct amdgpu_device *adev); - * amdgpu_dm_irq_suspend - disable ASIC interrupt during suspend. - * - */ --int amdgpu_dm_irq_suspend( -- struct amdgpu_device *adev); -+int amdgpu_dm_irq_suspend(struct amdgpu_device *adev); - - /** -+ * amdgpu_dm_irq_resume_early - enable HPDRX ASIC interrupts during resume. - * amdgpu_dm_irq_resume - enable ASIC interrupt during resume. - * - */ --int amdgpu_dm_irq_resume( -- struct amdgpu_device *adev); -+int amdgpu_dm_irq_resume_early(struct amdgpu_device *adev); -+int amdgpu_dm_irq_resume(struct amdgpu_device *adev); - - #endif /* __AMDGPU_DM_IRQ_H__ */ --- -2.7.4 - |