[PATCH 10/10] drm/ast: Gen7: Switch default registers to gen4+ state

Jocelyn Falempe jfalempe at redhat.com
Thu Jul 3 13:12:54 UTC 2025


On 02/07/2025 15:12, Thomas Zimmermann wrote:
> Change the default register settings for Gen7 to mach Gen4 and
> later. Gen7 currently uses the settings for Gen1, which is most
> likely incorrect.
> 
> Using Gen4+ settings enables E2M linear-access modes in VGACRA2.
> It appears to be related to the chip's PCIE2MBOX feature, which
> is unused.
> 
Thanks, it looks good to me.

Reviewed-by: Jocelyn Falempe <jfalempe at redhat.com>

> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> ---
>   drivers/gpu/drm/ast/ast_2600.c | 33 +--------------------------------
>   drivers/gpu/drm/ast/ast_post.h |  3 ---
>   2 files changed, 1 insertion(+), 35 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ast/ast_2600.c b/drivers/gpu/drm/ast/ast_2600.c
> index a426a981949e..3a3ef21684ad 100644
> --- a/drivers/gpu/drm/ast/ast_2600.c
> +++ b/drivers/gpu/drm/ast/ast_2600.c
> @@ -33,42 +33,11 @@
>    * POST
>    */
>   
> -void ast_2600_set_def_ext_reg(struct ast_device *ast)
> -{
> -	static const u8 extreginfo[] = { 0x0f, 0x04, 0x1c, 0xff };
> -	u8 i, index, reg;
> -	const u8 *ext_reg_info;
> -
> -	/* reset scratch */
> -	for (i = 0x81; i <= 0x9f; i++)
> -		ast_set_index_reg(ast, AST_IO_VGACRI, i, 0x00);
> -
> -	ext_reg_info = extreginfo;
> -	index = 0xa0;
> -	while (*ext_reg_info != 0xff) {
> -		ast_set_index_reg_mask(ast, AST_IO_VGACRI, index, 0x00, *ext_reg_info);
> -		index++;
> -		ext_reg_info++;
> -	}
> -
> -	/* disable standard IO/MEM decode if secondary */
> -	/* ast_set_index_reg-mask(ast, AST_IO_VGACRI, 0xa1, 0xff, 0x3); */
> -
> -	/* Set Ext. Default */
> -	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0x8c, 0x00, 0x01);
> -	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xb7, 0x00, 0x00);
> -
> -	/* Enable RAMDAC for A1 */
> -	reg = 0x04;
> -	reg |= 0x20;
> -	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xb6, 0xff, reg);
> -}
> -
>   int ast_2600_post(struct ast_device *ast)
>   {
>   	int ret;
>   
> -	ast_2600_set_def_ext_reg(ast);
> +	ast_2300_set_def_ext_reg(ast);
>   
>   	if (ast->tx_chip == AST_TX_ASTDP) {
>   		ret = ast_dp_launch(ast);
> diff --git a/drivers/gpu/drm/ast/ast_post.h b/drivers/gpu/drm/ast/ast_post.h
> index 9f3108ddeae8..aa5d247bebe8 100644
> --- a/drivers/gpu/drm/ast/ast_post.h
> +++ b/drivers/gpu/drm/ast/ast_post.h
> @@ -47,7 +47,4 @@ void ast_2000_set_def_ext_reg(struct ast_device *ast);
>   /* ast_2300.c */
>   void ast_2300_set_def_ext_reg(struct ast_device *ast);
>   
> -/* ast_2600.c */
> -void ast_2600_set_def_ext_reg(struct ast_device *ast);
> -
>   #endif



More information about the dri-devel mailing list