summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris Brezillon2018-07-24 15:32:15 +0200
committerBoris Brezillon2018-07-25 21:11:02 +0200
commit603ba2dfb338b307aebe95fe344c479a59b3a175 (patch)
tree88d0aec4ef84627f7c1f79df51a6eb8782d6a047
parentdrm: re-enable error handling (diff)
downloadkernel-qcow2-linux-603ba2dfb338b307aebe95fe344c479a59b3a175.tar.gz
kernel-qcow2-linux-603ba2dfb338b307aebe95fe344c479a59b3a175.tar.xz
kernel-qcow2-linux-603ba2dfb338b307aebe95fe344c479a59b3a175.zip
drm/atomic: Check old_plane_state->crtc in drm_atomic_helper_async_check()
Async plane update is supposed to work only when updating the FB or FB position of an already enabled plane. That does not apply to requests where the plane was previously disabled or assigned to a different CTRC. Check old_plane_state->crtc value to make sure async plane update is allowed. Fixes: fef9df8b5945 ("drm/atomic: initial support for asynchronous plane update") Cc: <stable@vger.kernel.org> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com> Reviewed-by: Eric Anholt <eric@anholt.net> Link: https://patchwork.freedesktop.org/patch/msgid/20180724133215.31917-1-boris.brezillon@bootlin.com
-rw-r--r--drivers/gpu/drm/drm_atomic_helper.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 130da5195f3b..ff858b890045 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1527,7 +1527,8 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
if (n_planes != 1)
return -EINVAL;
- if (!new_plane_state->crtc)
+ if (!new_plane_state->crtc ||
+ old_plane_state->crtc != new_plane_state->crtc)
return -EINVAL;
funcs = plane->helper_private;