From d3f85dbd65bbabe5f225a9ffe0c8715389392900 Mon Sep 17 00:00:00 2001 From: Eric Yang 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 Acked-by: Jordan Lazare --- 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