From 241c93fd927bc959a80bddf085147356ff4f4ceb Mon Sep 17 00:00:00 2001 From: Eric Yang Date: Mon, 4 Apr 2016 10:57:43 -0400 Subject: [PATCH 1003/1110] drm/amd/dal: keep the old target if commit fail for headless Signed-off-by: Eric Yang Acked-by: Harry Wentland Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c index a21d634..a091d97 100644 --- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c +++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c @@ -2363,6 +2363,7 @@ void dm_restore_drm_connector_state(struct drm_device *dev, struct drm_connector struct amdgpu_crtc *disconnected_acrtc; const struct dc_sink *sink; struct dc_target *commit_targets[6]; + struct dc_target *current_target; uint32_t commit_targets_count = 0; @@ -2394,7 +2395,8 @@ void dm_restore_drm_connector_state(struct drm_device *dev, struct drm_connector */ manage_dm_interrupts(adev, disconnected_acrtc, false); /* this is the update mode case */ - dc_target_release(disconnected_acrtc->target); + + current_target = disconnected_acrtc->target; disconnected_acrtc->target = new_target; disconnected_acrtc->enabled = true; @@ -2416,11 +2418,12 @@ void dm_restore_drm_connector_state(struct drm_device *dev, struct drm_connector commit_targets_count)) { DRM_INFO("Failed to restore connector state!\n"); dc_target_release(disconnected_acrtc->target); - disconnected_acrtc->target = NULL; - disconnected_acrtc->enabled = false; + disconnected_acrtc->target = current_target; + manage_dm_interrupts(adev, disconnected_acrtc, true); return; } + dc_target_release(current_target); dm_dc_surface_commit(dc, &disconnected_acrtc->base, to_dm_connector_state( -- 2.7.4