aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/imx/imx-drm-core.c
diff options
context:
space:
mode:
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)
171 drm_fbdev_cma_hotplug_event(imxdrm->fbhelper); 171 drm_fbdev_cma_hotplug_event(imxdrm->fbhelper);
172} 172}
173 173
174static int imx_drm_atomic_check(struct drm_device *dev,
175 struct drm_atomic_state *state)
176{
177 int ret;
178
179 ret = drm_atomic_helper_check_modeset(dev, state);
180 if (ret)
181 return ret;
182
183 ret = drm_atomic_helper_check_planes(dev, state);
184 if (ret)
185 return ret;
186
187 /*
188 * Check modeset again in case crtc_state->mode_changed is
189 * updated in plane's ->atomic_check callback.
190 */
191 ret = drm_atomic_helper_check_modeset(dev, state);
192 if (ret)
193 return ret;
194
195 return ret;
196}
197
174static const struct drm_mode_config_funcs imx_drm_mode_config_funcs = { 198static const struct drm_mode_config_funcs imx_drm_mode_config_funcs = {
175 .fb_create = drm_fb_cma_create, 199 .fb_create = drm_fb_cma_create,
176 .output_poll_changed = imx_drm_output_poll_changed, 200 .output_poll_changed = imx_drm_output_poll_changed,
177 .atomic_check = drm_atomic_helper_check, 201 .atomic_check = imx_drm_atomic_check,
178 .atomic_commit = drm_atomic_helper_commit, 202 .atomic_commit = drm_atomic_helper_commit,
179}; 203};
180 204