diff options
Diffstat (limited to 'drivers/gpu/drm/imx/imx-drm-core.c')
-rw-r--r-- | drivers/gpu/drm/imx/imx-drm-core.c | 26 |
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 | ||
174 | static 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 | |||
174 | static const struct drm_mode_config_funcs imx_drm_mode_config_funcs = { | 198 | static 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 | ||