From 0800e8aeaf0c1fd6c49a9fe214f39c655345bb31 Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Wed, 22 Oct 2025 08:48:49 +0200 Subject: [PATCH] [v2] ast: Set/clear screen-disable bit --- drivers/gpu/drm/ast/ast_mode.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index 9ce874dba69c..05cbf2fc6560 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -820,6 +820,7 @@ ast_crtc_helper_atomic_flush(struct drm_crtc *crtc, static void ast_crtc_helper_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_state *state) { struct ast_device *ast = to_ast_device(crtc->dev); + u8 vgasr1 = 0xff; u8 vgacr17 = 0x00; u8 vgacrb6 = 0xff; @@ -828,6 +829,9 @@ static void ast_crtc_helper_atomic_enable(struct drm_crtc *crtc, struct drm_atom ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0x17, 0x7f, vgacr17); ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xb6, 0xfc, vgacrb6); + + vgasr1 &= ~AST_IO_VGASR1_SD; + ast_set_index_reg_mask(ast, AST_IO_VGASRI, 0x01, 0xdf, vgasr1); } static void ast_crtc_helper_atomic_disable(struct drm_crtc *crtc, struct drm_atomic_state *state) @@ -835,9 +839,13 @@ static void ast_crtc_helper_atomic_disable(struct drm_crtc *crtc, struct drm_ato struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, crtc); struct ast_device *ast = to_ast_device(crtc->dev); u8 vgacr17 = 0xff; + u8 vgasr1 = 0x00; - vgacr17 &= ~AST_IO_VGACR17_SYNC_ENABLE; - ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0x17, 0x7f, vgacr17); + vgasr1 |= AST_IO_VGASR1_SD; + ast_set_index_reg_mask(ast, AST_IO_VGASRI, 0x01, 0xdf, vgasr1); + + //vgacr17 &= ~AST_IO_VGACR17_SYNC_ENABLE; + //ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0x17, 0x7f, vgacr17); /* * HW cursors require the underlying primary plane and CRTC to -- 2.51.0