From 7f629b8c628b12e1c913baeb82709b464ddffd7b Mon Sep 17 00:00:00 2001 From: Eric Yang Date: Tue, 27 Sep 2016 14:07:02 +0530 Subject: [PATCH] Use non-polling user mode notification for DAL DAL do not use polling for user mode notification. This change allow actual user mode notification on S3 resume when DAL is enabled Reviewed-by: Alex Deucher Signed-off-by: Eric Yang Signed-off-by: Sanjay R Mehta --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 59209e4..cfeebcc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -1707,12 +1707,14 @@ int amdgpu_suspend_kms(struct drm_device *dev, bool suspend, bool fbcon) drm_kms_helper_poll_disable(dev); - /* turn off display hw */ - drm_modeset_lock_all(dev); - list_for_each_entry(connector, &dev->mode_config.connector_list, head) { - drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); + if (!amdgpu_has_dal_support(adev)) { + /* turn off display hw */ + drm_modeset_lock_all(dev); + list_for_each_entry(connector, &dev->mode_config.connector_list, head) { + drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); + } + drm_modeset_unlock_all(dev); } - drm_modeset_unlock_all(dev); /* unpin the front buffers and cursors */ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { @@ -1807,6 +1809,9 @@ int amdgpu_resume_kms(struct drm_device *dev, bool resume, bool fbcon) if (r) DRM_ERROR("amdgpu_resume failed (%d).\n", r); + if (r) + DRM_ERROR("amdgpu_resume failed (%d).\n", r); + amdgpu_fence_driver_resume(adev); if (resume) { @@ -1866,7 +1871,11 @@ int amdgpu_resume_kms(struct drm_device *dev, bool resume, bool fbcon) #ifdef CONFIG_PM dev->dev->power.disable_depth++; #endif - drm_helper_hpd_irq_event(dev); + + if (!amdgpu_has_dal_support(adev)) + drm_helper_hpd_irq_event(dev); + else + drm_kms_helper_hotplug_event(dev); #ifdef CONFIG_PM dev->dev->power.disable_depth--; #endif -- 2.7.4