diff options
Diffstat (limited to 'drivers/gpu/drm/ast/ast_mode.c')
| -rw-r--r-- | drivers/gpu/drm/ast/ast_mode.c | 18 | 
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index b4e8edc7c767..30b011ed0a05 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -836,22 +836,24 @@ 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 vgacr17 = 0x00; +	u8 vgacrb6 = 0xff; -	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xb6, 0xfc, 0x00); -	ast_set_index_reg_mask(ast, AST_IO_VGASRI, 0x01, 0xdf, 0x00); +	vgacr17 |= AST_IO_VGACR17_SYNC_ENABLE; +	vgacrb6 &= ~(AST_IO_VGACRB6_VSYNC_OFF | AST_IO_VGACRB6_HSYNC_OFF); + +	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0x17, 0x7f, vgacr17); +	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xb6, 0xfc, vgacrb6);  }  static void ast_crtc_helper_atomic_disable(struct drm_crtc *crtc, struct drm_atomic_state *state)  {  	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 vgacrb6; +	u8 vgacr17 = 0xff; -	ast_set_index_reg_mask(ast, AST_IO_VGASRI, 0x01, 0xdf, AST_IO_VGASR1_SD); - -	vgacrb6 = AST_IO_VGACRB6_VSYNC_OFF | -		  AST_IO_VGACRB6_HSYNC_OFF; -	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xb6, 0xfc, vgacrb6); +	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  | 
