aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0944-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0944-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch')
-rw-r--r--meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0944-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0944-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0944-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch
new file mode 100644
index 00000000..6d97a903
--- /dev/null
+++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0944-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch
@@ -0,0 +1,70 @@
+From c1d89c1cb963963fddbd5da96bbe76804673085f 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 0944/1050] 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.
+
+Change-Id: I1c64ef0f56f703949de4ed64fb2e2214f95492a2
+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 caa7368..e073f20 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
+@@ -2114,6 +2114,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;
+@@ -2159,7 +2161,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,
+@@ -2203,12 +2204,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;
+ }
+@@ -2226,8 +2222,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;
+--
+1.9.1
+