]> git.ipfire.org Git - thirdparty/linux.git/commit
drm/ast: Store register addresses in struct ast_dramstruct
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 27 Mar 2026 13:33:01 +0000 (14:33 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Wed, 8 Apr 2026 09:04:49 +0000 (11:04 +0200)
commit5e9ced3d6c291a956c8d39ee77bcd7cbbd3891fc
tree071e3f75adc164ef54804e89f4f3455ca4443ea8
parent5da1fcb9cb69a3274b77747ffcc3f0a2223e253d
drm/ast: Store register addresses in struct ast_dramstruct

Struct ast_dramstruct contains a 16-bit index field that either
contains a magic value or serves as index into the P2A address
segment at 0x1e600000. This segment serves MCR and SCU registers,
which the ast_dramstruct programs. It's fragile and relies upon
the ast_post_chip_*() functions to set up the segment correctly.

Replace the 16-bit index with a full 32-bit address of the SCU
and MCR addresses. Initialize the DRAM tables with full register
constants and write them out with ast_moutdwm(). This sets the
correct segment on each write.

Drop __AST_DRAMSTRUCT_DRAM_TYPE as it simply referred to MCR04.
Use the latter for initializing the DRAM tables.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://patch.msgid.link/20260327133532.79696-10-tzimmermann@suse.de
drivers/gpu/drm/ast/ast_2000.c
drivers/gpu/drm/ast/ast_2100.c
drivers/gpu/drm/ast/ast_post.h
drivers/gpu/drm/ast/ast_reg.h