diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0608-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0608-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0608-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch b/common/recipes-kernel/linux/files/0608-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch new file mode 100644 index 00000000..405de584 --- /dev/null +++ b/common/recipes-kernel/linux/files/0608-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch @@ -0,0 +1,69 @@ +From 5e17c458aedbc2ac66c987e2dda38e9321d2a6cc Mon Sep 17 00:00:00 2001 +From: Mykola Lysenko <Mykola.Lysenko@amd.com> +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 <harry.wentland@amd.com> +Acked-by: Harry Wentland<harry.wentland@amd.com> +--- + 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 + |