|
@@ -44,11 +44,15 @@ static void fsl_dcu_drm_crtc_atomic_flush(struct drm_crtc *crtc,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void fsl_dcu_drm_disable_crtc(struct drm_crtc *crtc)
|
|
|
+static void fsl_dcu_drm_crtc_atomic_disable(struct drm_crtc *crtc,
|
|
|
+ struct drm_crtc_state *old_crtc_state)
|
|
|
{
|
|
|
struct drm_device *dev = crtc->dev;
|
|
|
struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
|
|
|
|
|
|
+ /* always disable planes on the CRTC */
|
|
|
+ drm_atomic_helper_disable_planes_on_crtc(old_crtc_state, true);
|
|
|
+
|
|
|
drm_crtc_vblank_off(crtc);
|
|
|
|
|
|
regmap_update_bits(fsl_dev->regmap, DCU_DCU_MODE,
|
|
@@ -127,8 +131,8 @@ static void fsl_dcu_drm_crtc_mode_set_nofb(struct drm_crtc *crtc)
|
|
|
}
|
|
|
|
|
|
static const struct drm_crtc_helper_funcs fsl_dcu_drm_crtc_helper_funcs = {
|
|
|
+ .atomic_disable = fsl_dcu_drm_crtc_atomic_disable,
|
|
|
.atomic_flush = fsl_dcu_drm_crtc_atomic_flush,
|
|
|
- .disable = fsl_dcu_drm_disable_crtc,
|
|
|
.enable = fsl_dcu_drm_crtc_enable,
|
|
|
.mode_set_nofb = fsl_dcu_drm_crtc_mode_set_nofb,
|
|
|
};
|