Re: [PATCH v10 03/11] drm/etnaviv: Add dedicated functions to create and destroy platform device

From: Sui Jingfeng
Date: Wed Jun 21 2023 - 10:35:57 EST


Hi,

On 2023/6/21 22:00, Lucas Stach wrote:
Am Mittwoch, dem 21.06.2023 um 21:31 +0800 schrieb Sui Jingfeng:
On 2023/6/21 18:23, Lucas Stach wrote:
While back to the question you ask, I want etnaviv_create_platform_device() to be generic,

can be used by multiple place for multiple purpose.

I have successfully copy this to a another drm driver by simply renaming.

The body of the function itself does not need to change.
But it isn't shared,
This can be shared for drm/etnaviv in the future,

currently, we just need an opportunity to use this function.

I'm not convinced, yet.

I want to create a dummy platform device,

let this dummy platform be bound to the single PCI GPU master.


etnaviv_create_platform_device("dummy", &dummy_device);


1) To verify the component code path on PCI case.

My favorite option would be to just always use the component path even
when the GPU is on a PCI device to keep both paths mostly aligned. One
could easily image both a 3D and a 2D core being made available though
the same PCI device.

Component is for something that is possible not available. (or something is optional)

Yes it provided flexibly, but don't forget, it rely on the DT.


But for the PCIe device, it always the case that all of the hardware is available at the same time

when the device driver(kernel module) is loaded.


2) Possibly for create a device for some other tiny hardware logic
come with the platform

Do you have something in mind here? Until now I assumed that only the
GPU core is behind the PCI abstraction. Is there something else sharing
the MMIO space?

A display controller, HDMI phy, vga encoder etc


I have a discrete PCIe GPU card from another vendor,

It integrated display controller and vivante GPU and unknown VPUs.

All of the  hardware block mentioned above sharing the MMIO space.

There are available on the same time when you mount this discrete PCIe GPU card on the mother board


Regards,
Lucas

3) Revival component_compare_dev_name() function.

in this compilation unit this function is specific
to the etnaviv driver and I don't see why we shouldn't have etnaviv
specifics in there if it makes the code of this driver easier to
follow.

--
Jingfeng