diff options
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.patch | 55 |
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 + |