From ab209c32f5df862d7255640ad61d1d293299f2d7 Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Tue, 18 Jul 2017 16:47:39 +0200 Subject: [PATCH] drm/ast: Add an crtc_disable callback to the crtc helper funcs Implement the proper CRTC disablement, just like done in mgag200 driver. Signed-off-by: Egbert Eich Signed-off-by: Takashi Iwai Signed-off-by: Dave Airlie --- drivers/gpu/drm/ast/ast_mode.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index aaef0a652f10..3549a3356afe 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -613,7 +613,23 @@ static int ast_crtc_mode_set(struct drm_crtc *crtc, static void ast_crtc_disable(struct drm_crtc *crtc) { + int ret; + + DRM_DEBUG_KMS("\n"); + ast_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); + if (crtc->primary->fb) { + struct ast_framebuffer *ast_fb = to_ast_framebuffer(crtc->primary->fb); + struct drm_gem_object *obj = ast_fb->obj; + struct ast_bo *bo = gem_to_ast_bo(obj); + + ret = ast_bo_reserve(bo, false); + if (ret) + return; + ast_bo_push_sysram(bo); + ast_bo_unreserve(bo); + } + crtc->primary->fb = NULL; } static void ast_crtc_prepare(struct drm_crtc *crtc) -- 2.11.0