|
@@ -46,6 +46,19 @@ static struct drm_encoder *sun4i_crtc_get_encoder(struct drm_crtc *crtc)
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
+static int sun4i_crtc_atomic_check(struct drm_crtc *crtc,
|
|
|
+ struct drm_crtc_state *state)
|
|
|
+{
|
|
|
+ struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc);
|
|
|
+ struct sunxi_engine *engine = scrtc->engine;
|
|
|
+ int ret = 0;
|
|
|
+
|
|
|
+ if (engine && engine->ops && engine->ops->atomic_check)
|
|
|
+ ret = engine->ops->atomic_check(engine, state);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc,
|
|
|
struct drm_crtc_state *old_state)
|
|
|
{
|
|
@@ -125,6 +138,7 @@ static void sun4i_crtc_mode_set_nofb(struct drm_crtc *crtc)
|
|
|
}
|
|
|
|
|
|
static const struct drm_crtc_helper_funcs sun4i_crtc_helper_funcs = {
|
|
|
+ .atomic_check = sun4i_crtc_atomic_check,
|
|
|
.atomic_begin = sun4i_crtc_atomic_begin,
|
|
|
.atomic_flush = sun4i_crtc_atomic_flush,
|
|
|
.atomic_enable = sun4i_crtc_atomic_enable,
|