[PATCH 00/14] drm/ast: Refactor the device-detection code
Thomas Zimmermann
tzimmermann at suse.de
Fri Jun 16 13:52:22 UTC 2023
Ast's code for detecting the device type and features is convoluted.
It mixes up several state fields, chip types and sub-models. Rework
the driver into somehting more understandable.
Patches 1 fixes a long-standing bug. The affected code has never
worked correctly.
Patches 2 to 8 make various changes to the init code, or remove dead
and duplicated code paths.
Patch 9 introduces chip generations. Until now, ast used the value
of enum ast_chip to represent a certain set of related modes, and
also used the enum to represent individal models. This makes the
driver code hard to understand in certain places. The patch encodes
a chip generation in each model enum and converts the driver to use
it.
Patches 10 to 12 replace duplicated model checks with the correct
enum value. Detection of wide-screen functionality and the transmitter
chip can then be moved into individual functions in patch 13.
Patch 14 merges the detection of the silicon revision and the chip
model into s single function. Both need to be done in the same place
and affect each other.
Tested on AST1100 and AST2300.
Thomas Zimmermann (14):
drm/ast: Fix DRAM init on AST2200
drm/ast: Remove vga2_clone field
drm/ast: Implement register helpers in ast_drv.h
drm/ast: Remove dead else branch in POST code
drm/ast: Remove device POSTing and config from chip detection
drm/ast: Set PCI config before accessing I/O registers
drm/ast: Enable and unlock device access early during init
drm/ast: Set up release action right after enabling MMIO
drm/ast: Distinguish among chip generations
drm/ast: Detect AST 1300 model
drm/ast: Detect AST 1400 model
drm/ast: Detect AST 2510 model
drm/ast: Move widescreen- and tx-chip detection into separate helpers
drm/ast: Merge config and chip detection
drivers/gpu/drm/ast/ast_dp501.c | 6 +-
drivers/gpu/drm/ast/ast_drv.h | 97 +++++++---
drivers/gpu/drm/ast/ast_main.c | 320 +++++++++++++++++++-------------
drivers/gpu/drm/ast/ast_mm.c | 2 -
drivers/gpu/drm/ast/ast_mode.c | 35 ++--
drivers/gpu/drm/ast/ast_post.c | 74 ++------
6 files changed, 294 insertions(+), 240 deletions(-)
--
2.41.0
More information about the dri-devel
mailing list