aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0608-drm-amd-dal-use-DRM-helper-to-update-legacy-state.patch
diff options
context:
space:
mode:
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.patch69
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
+