diff options
| author | Thomas Zimmermann <tzimmermann@suse.de> | 2025-07-06 18:26:45 +0200 |
|---|---|---|
| committer | Thomas Zimmermann <tzimmermann@suse.de> | 2025-07-09 14:36:23 +0200 |
| commit | 820845ce37b0fb8a4b43a7fbe745e59f6199fb27 (patch) | |
| tree | 0a296bf130efc20c2ef09e5613290cc1aa315630 | |
| parent | 22518e93135f42d6dcc72b6850b7890207c19be5 (diff) | |
drm/ast: Gen7: Switch default registers to gen4+ state
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.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://lore.kernel.org/r/20250706162816.211552-11-tzimmermann@suse.de
| -rw-r--r-- | drivers/gpu/drm/ast/ast_2600.c | 33 | ||||
| -rw-r--r-- | drivers/gpu/drm/ast/ast_post.h | 3 |
2 files changed, 1 insertions, 35 deletions
diff --git a/drivers/gpu/drm/ast/ast_2600.c b/drivers/gpu/drm/ast/ast_2600.c index 01fd0e2d96e1..8d75a47444f5 100644 --- a/drivers/gpu/drm/ast/ast_2600.c +++ b/drivers/gpu/drm/ast/ast_2600.c @@ -33,40 +33,9 @@ * 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) { - ast_2600_set_def_ext_reg(ast); + ast_2300_set_def_ext_reg(ast); if (ast->tx_chip == AST_TX_ASTDP) return 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 |