|
@@ -195,6 +195,26 @@ static void sti_atomic_work(struct work_struct *work)
|
|
|
sti_atomic_complete(private, private->commit.state);
|
|
|
}
|
|
|
|
|
|
+static int sti_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_normalize_zpos(dev, state);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ ret = drm_atomic_helper_check_planes(dev, state);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
static int sti_atomic_commit(struct drm_device *drm,
|
|
|
struct drm_atomic_state *state, bool nonblock)
|
|
|
{
|
|
@@ -248,7 +268,7 @@ static void sti_output_poll_changed(struct drm_device *ddev)
|
|
|
static const struct drm_mode_config_funcs sti_mode_config_funcs = {
|
|
|
.fb_create = drm_fb_cma_create,
|
|
|
.output_poll_changed = sti_output_poll_changed,
|
|
|
- .atomic_check = drm_atomic_helper_check,
|
|
|
+ .atomic_check = sti_atomic_check,
|
|
|
.atomic_commit = sti_atomic_commit,
|
|
|
};
|
|
|
|