aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4377-drm-amd-display-remove-need-of-modeset-flag-for-over.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4377-drm-amd-display-remove-need-of-modeset-flag-for-over.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4377-drm-amd-display-remove-need-of-modeset-flag-for-over.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4377-drm-amd-display-remove-need-of-modeset-flag-for-over.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4377-drm-amd-display-remove-need-of-modeset-flag-for-over.patch
new file mode 100644
index 00000000..604db2ac
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4377-drm-amd-display-remove-need-of-modeset-flag-for-over.patch
@@ -0,0 +1,63 @@
+From df4cd0a954c56baeaf26a80f135ad012e68212e8 Mon Sep 17 00:00:00 2001
+From: Shirish S <shirish.s@amd.com>
+Date: Fri, 27 Apr 2018 15:47:21 +0530
+Subject: [PATCH 4377/5725] drm/amd/display: remove need of modeset flag for
+ overlay planes (V2)
+
+This patch is in continuation to the
+"843e3c7 drm/amd/display: defer modeset check in dm_update_planes_state"
+where we started to eliminate the dependency on
+DRM_MODE_ATOMIC_ALLOW_MODESET to be set by the user space,
+which as such is not mandatory.
+
+After deferring, this patch eliminates the dependency on the flag
+for overlay planes.
+
+This has to be done in stages as its a pretty complex and requires thorough
+testing before we free primary planes as well from dependency on modeset
+flag.
+
+V2: Simplified the plane type check.
+
+Signed-off-by: Shirish S <shirish.s@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 +++++---
+ 1 file changed, 5 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 17d9675..be3200c 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -4291,7 +4291,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
+ }
+ spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
+
+- if (!pflip_needed) {
++ if (!pflip_needed || plane->type == DRM_PLANE_TYPE_OVERLAY) {
+ WARN_ON(!dm_new_plane_state->dc_state);
+
+ plane_states_constructed[planes_count] = dm_new_plane_state->dc_state;
+@@ -5001,7 +5001,8 @@ static int dm_update_planes_state(struct dc *dc,
+
+ /* Remove any changed/removed planes */
+ if (!enable) {
+- if (pflip_needed)
++ if (pflip_needed &&
++ plane->type != DRM_PLANE_TYPE_OVERLAY)
+ continue;
+
+ if (!old_plane_crtc)
+@@ -5048,7 +5049,8 @@ static int dm_update_planes_state(struct dc *dc,
+ if (!dm_new_crtc_state->stream)
+ continue;
+
+- if (pflip_needed)
++ if (pflip_needed &&
++ plane->type != DRM_PLANE_TYPE_OVERLAY)
+ continue;
+
+ WARN_ON(dm_new_plane_state->dc_state);
+--
+2.7.4
+