[PATCH 00/10] drm/ast: Detect device type before init
Thomas Zimmermann
tzimmermann at suse.de
Mon Nov 13 08:50:22 UTC 2023
Detecting the ast device's chipset type and configuration mode
involves several registers, DT properties and possibly POSTing
parts of the chip. It is preferable to do this before initializing
the DRM driver, so that that each chip type can have an individual
setup code.
The patchset addresses the problem by moving all early detection
code before the allocation of the ast device.
Patch one gets a lock out of the way. The lock is only relevant
for mode setting. Move it there.
Patches 2 and 3 rework the detection of the correct I/O memory
ranges. It is now self-contained, more readable and works without
an instance of struct ast_device.
Patches 4 to 7 rework the setup of various registers that are
required for detection. Access helpers for I/O can now operate
without an instance of struct ast_device. The setup functions
operate on the I/O ranges that have been made available with
patch 3, but again without struct ast_device.
With the detection's internals done, patches 8 and 9 rework the
chip's and config-mode's detection code to operate without struct
ast_device as well.
Finally, patch 10 moves the detection code into the PCI probe
function. it runs before any of the DRM device code. The fucntion
for creating an ast device, ast_device_create(), receives the
detected I/O memory ranges, chip type and configuration mode.
This cleans up the detection code. There is more chip-specific
code in other parts of the driver. In a later patch, the ast device
setup can be split up so that each chip type gets its own code
path that does not interfere with other chips.
Tested on AST1100 and AST2100.
Thomas Zimmermann (10):
drm/ast: Turn ioregs_lock to modeset_lock
drm/ast: Rework I/O register setup
drm/ast: Retrieve I/O-memory ranges without ast device
drm/ast: Add I/O helpers without ast device
drm/ast: Enable VGA without ast device instance
drm/ast: Enable MMIO without ast device instance
drm/ast: Partially implement POST without ast device instance
drm/ast: Add enum ast_config_mode
drm/ast: Detect ast device type and config mode without ast device
drm/ast: Move detection code into PCI probe helper
drivers/gpu/drm/ast/ast_drv.c | 261 ++++++++++++++++++++++++++++++++-
drivers/gpu/drm/ast/ast_drv.h | 101 +++++++++----
drivers/gpu/drm/ast/ast_main.c | 244 ++----------------------------
drivers/gpu/drm/ast/ast_mode.c | 26 ++--
drivers/gpu/drm/ast/ast_post.c | 73 +++++----
drivers/gpu/drm/ast/ast_reg.h | 12 +-
6 files changed, 411 insertions(+), 306 deletions(-)
base-commit: b7816c393496dc4497c1327310821407f7171d8b
prerequisite-patch-id: 0aa359f6144c4015c140c8a6750be19099c676fb
prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
prerequisite-patch-id: cbc453ee02fae02af22fbfdce56ab732c7a88c36
--
2.42.0
More information about the dri-devel
mailing list