summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/imx/imx-drm-core.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2016-09-08 14:05:16 +0200
committerIngo Molnar <mingo@kernel.org>2016-09-08 14:05:16 +0200
commit950d8381d915ee293a5b57f91e59dd8115684af1 (patch)
tree6a611a808da1e28c3db740ac9a54c01757af2e56 /drivers/gpu/drm/imx/imx-drm-core.c
parent979515c5645830465739254abc1b1648ada41518 (diff)
parentd71f058617564750261b673ea9b3352382b9cde4 (diff)
downloadlinux-950d8381d915ee293a5b57f91e59dd8115684af1.tar.gz
linux-950d8381d915ee293a5b57f91e59dd8115684af1.tar.bz2
linux-950d8381d915ee293a5b57f91e59dd8115684af1.zip
Merge branch 'linus' into timers/core, to refresh the branch
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/imx/imx-drm-core.c')
-rw-r--r--drivers/gpu/drm/imx/imx-drm-core.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
index 9f7dafce3a4c..7bf90e9e6139 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -171,10 +171,34 @@ static void imx_drm_output_poll_changed(struct drm_device *drm)
drm_fbdev_cma_hotplug_event(imxdrm->fbhelper);
}
+static int imx_drm_atomic_check(struct drm_device *dev,
+ struct drm_atomic_state *state)
+{
+ int ret;
+
+ ret = drm_atomic_helper_check_modeset(dev, state);
+ if (ret)
+ return ret;
+
+ ret = drm_atomic_helper_check_planes(dev, state);
+ if (ret)
+ return ret;
+
+ /*
+ * Check modeset again in case crtc_state->mode_changed is
+ * updated in plane's ->atomic_check callback.
+ */
+ ret = drm_atomic_helper_check_modeset(dev, state);
+ if (ret)
+ return ret;
+
+ return ret;
+}
+
static const struct drm_mode_config_funcs imx_drm_mode_config_funcs = {
.fb_create = drm_fb_cma_create,
.output_poll_changed = imx_drm_output_poll_changed,
- .atomic_check = drm_atomic_helper_check,
+ .atomic_check = imx_drm_atomic_check,
.atomic_commit = drm_atomic_helper_commit,
};