[PATCH 00/10] drm/ast: Detect device type before init
Jocelyn Falempe
jfalempe at redhat.com
Mon Nov 13 15:30:52 UTC 2023
On 13/11/2023 09:50, Thomas Zimmermann wrote:
> 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
I've reviewed the whole series, and I have only a minor comment on patch
9. That's a good thing to move the chip detection to its own functions,
and will allow further refactoring later.
For the whole series:
Reviewed-by: Jocelyn Falempe <jfalempe at redhat.com>
--
Jocelyn
More information about the dri-devel
mailing list