From 5e17c458aedbc2ac66c987e2dda38e9321d2a6cc Mon Sep 17 00:00:00 2001 From: Mykola Lysenko Date: Thu, 10 Dec 2015 20:17:56 +0800 Subject: [PATCH 0608/1110] drm/amd/dal: use DRM helper to update legacy state Although legacy state of DRM objects (e.g. crtc, connector etc.) should not be used by atomic code, DRM code still uses it to report information to userspace. Previously part of legacy state was updated by amdgpu atomic_commit. It was found that dpms state was not updated, and drm provides helper function to update legacy state. This change removes amdgpu atomic_commit code to update state and start to use DRM helper function for this. Signed-off-by: Harry Wentland Acked-by: Harry Wentland --- drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 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 45a2a68..a9ff09d 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 @@ -2113,6 +2113,8 @@ int amdgpu_dm_atomic_commit( * wait_for_fences(dev, state); */ + drm_atomic_helper_update_legacy_modeset_state(dev, state); + /* update changed items */ for_each_crtc_in_state(state, crtc, old_crtc_state, i) { struct amdgpu_crtc *acrtc; @@ -2158,7 +2160,6 @@ int amdgpu_dm_atomic_commit( switch (action) { case DM_COMMIT_ACTION_DPMS_ON: case DM_COMMIT_ACTION_SET: { - const struct drm_connector_helper_funcs *connector_funcs; struct dc_target *new_target = create_target_for_sink( aconnector, @@ -2202,12 +2203,7 @@ int amdgpu_dm_atomic_commit( acrtc->target = new_target; acrtc->enabled = true; - acrtc->base.enabled = true; - connector_funcs = aconnector->base.helper_private; - aconnector->base.encoder = - connector_funcs->best_encoder( - &aconnector->base); down(&aconnector->mst_sem); break; } @@ -2225,8 +2221,7 @@ int amdgpu_dm_atomic_commit( dc_target_release(acrtc->target); acrtc->target = NULL; acrtc->enabled = false; - acrtc->base.enabled = false; - aconnector->base.encoder = NULL; + up(&aconnector->mst_sem); } break; -- 2.7.4