diff options
Diffstat (limited to 'drivers/gpu/drm/ast')
| -rw-r--r-- | drivers/gpu/drm/ast/ast_mode.c | 18 | ||||
| -rw-r--r-- | drivers/gpu/drm/ast/ast_reg.h | 1 | 
2 files changed, 11 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 diff --git a/drivers/gpu/drm/ast/ast_reg.h b/drivers/gpu/drm/ast/ast_reg.h index e15adaf3a80e..30578e3b07e4 100644 --- a/drivers/gpu/drm/ast/ast_reg.h +++ b/drivers/gpu/drm/ast/ast_reg.h @@ -29,6 +29,7 @@  #define AST_IO_VGAGRI			(0x4E)  #define AST_IO_VGACRI			(0x54) +#define AST_IO_VGACR17_SYNC_ENABLE	BIT(7) /* called "Hardware reset" in docs */  #define AST_IO_VGACR80_PASSWORD		(0xa8)  #define AST_IO_VGACR99_VGAMEM_RSRV_MASK	GENMASK(1, 0)  #define AST_IO_VGACRA1_VGAIO_DISABLED	BIT(1) | 
