[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