aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3655-drm-amd-display-defer-modeset-check-in-dm_update_pla.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3655-drm-amd-display-defer-modeset-check-in-dm_update_pla.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3655-drm-amd-display-defer-modeset-check-in-dm_update_pla.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3655-drm-amd-display-defer-modeset-check-in-dm_update_pla.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3655-drm-amd-display-defer-modeset-check-in-dm_update_pla.patch
new file mode 100644
index 00000000..30d3a821
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3655-drm-amd-display-defer-modeset-check-in-dm_update_pla.patch
@@ -0,0 +1,61 @@
+From 0bc9519301ed7c7cc31ccaa49c2baecb0bb34d95 Mon Sep 17 00:00:00 2001
+From: Shirish S <shirish.s@amd.com>
+Date: Fri, 16 Feb 2018 11:44:22 +0530
+Subject: [PATCH 3655/4131] drm/amd/display: defer modeset check in
+ dm_update_planes_state
+
+amdgpu_dm_atomic_check() is used to validate the entire configuration of
+planes and crtc's that the user space wants to commit.
+
+However amdgpu_dm_atomic_check() depends upon DRM_MODE_ATOMIC_ALLOW_MODESET
+flag else its mostly dummy.
+Its not mandatory for the user space to set DRM_MODE_ATOMIC_ALLOW_MODESET,
+and in general its not set either along with DRM_MODE_ATOMIC_TEST_ONLY.
+
+Considering its importantance, this patch defers the allow_modeset check
+in dm_update_planes_state(), so that there shall be scope to validate
+the configuration sent from user space, without impacting the population
+of dc/dm related data structures.
+
+Signed-off-by: Shirish S <shirish.s@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index 718e731..c61650d 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -4801,9 +4801,6 @@ static int dm_update_planes_state(struct dc *dc,
+ bool pflip_needed = !state->allow_modeset;
+ int ret = 0;
+
+- if (pflip_needed)
+- return ret;
+-
+ /* Add new planes */
+ for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
+ new_plane_crtc = new_plane_state->crtc;
+@@ -4817,6 +4814,8 @@ static int dm_update_planes_state(struct dc *dc,
+
+ /* Remove any changed/removed planes */
+ if (!enable) {
++ if (pflip_needed)
++ continue;
+
+ if (!old_plane_crtc)
+ continue;
+@@ -4861,6 +4860,8 @@ static int dm_update_planes_state(struct dc *dc,
+ if (!dm_new_crtc_state->stream)
+ continue;
+
++ if (pflip_needed)
++ continue;
+
+ WARN_ON(dm_new_plane_state->dc_state);
+
+--
+2.7.4
+