[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231129220231.12763-1-sui.jingfeng@linux.dev>
Date: Thu, 30 Nov 2023 06:02:23 +0800
From: Sui Jingfeng <sui.jingfeng@...ux.dev>
To: Lucas Stach <l.stach@...gutronix.de>
Cc: Christian Gmeiner <christian.gmeiner@...il.com>,
dri-devel@...ts.freedesktop.org, etnaviv@...ts.freedesktop.org,
linux-kernel@...r.kernel.org, Sui Jingfeng <sui.jingfeng@...ux.dev>
Subject: [etnaviv-next v12 0/8] drm/etnaviv: Add PCI(e) device driver wrapper and instances
This series is add PCI device driver wrapper, to support the Vivante GC1000
GPU in LS2K1000 and LS7A1000.
The whole serie have been tested on X86-64 and LoongArch platform, only the
kernel space driver are tested, basically normal and run stable!
v6:
* Fix build issue on system without CONFIG_PCI enabled
v7:
* Add a separate patch for the platform driver rearrangement (Bjorn)
* Switch to runtime check if the GPU is dma coherent or not (Lucas)
* Add ETNAVIV_PARAM_GPU_COHERENT to allow userspace to query (Lucas)
* Remove etnaviv_gpu.no_clk member (Lucas)
* Various Typos and coding style fixed (Bjorn)
v8:
* Fix typos and remove unnecessary header included (Bjorn).
* Add a dedicated function to create the virtual master platform
device.
v9:
* Use PCI_VDEVICE() macro (Bjorn)
* Add trivial stubs for the PCI driver (Bjorn)
* Remove a redundant dev_err() usage (Bjorn)
* Clean up etnaviv_pdev_probe() with etnaviv_of_first_available_node()
v10:
* Add one more cleanup patch
* Resolve the conflict with a patch from Rob
* Make the dummy PCI stub inlined
* Print only if the platform is dma-coherrent
V11:
* Drop unnecessary changes (Lucas)
* Tweak according to other reviews of v10.
V12:
* Create a virtual platform device for the subcomponent GPU cores
* Bind all subordinate GPU cores to the real PCI master via component.
Sui Jingfeng (8):
drm/etnaviv: Add a helper function to get clocks
drm/etnaviv: Add constructor and destructor for struct
etnaviv_drm_private
drm/etnaviv: Allow bypass component framework
drm/etnaviv: Support for the vivante GPU core attached on PCI(e)
device
drm/etnaviv: Add support for cached coherent caching mode
drm/etnaviv: Embed struct drm_device in struct etnaviv_drm_private
drm/etnaviv: Add support for the JingJia Macro and LingJiu PCI(e) GPUs
drm/etnaviv: Support binding multiple GPU cores with component
drivers/gpu/drm/etnaviv/Kconfig | 8 +
drivers/gpu/drm/etnaviv/Makefile | 2 +
drivers/gpu/drm/etnaviv/etnaviv_drv.c | 189 ++++++++-----
drivers/gpu/drm/etnaviv/etnaviv_drv.h | 27 ++
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 22 +-
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 2 +-
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 187 +++++++++----
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 10 +
drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 4 +-
drivers/gpu/drm/etnaviv/etnaviv_pci_drv.c | 279 +++++++++++++++++++
drivers/gpu/drm/etnaviv/etnaviv_pci_drv.h | 37 +++
include/uapi/drm/etnaviv_drm.h | 1 +
12 files changed, 639 insertions(+), 129 deletions(-)
create mode 100644 drivers/gpu/drm/etnaviv/etnaviv_pci_drv.c
create mode 100644 drivers/gpu/drm/etnaviv/etnaviv_pci_drv.h
base-commit: 5ce7ae0a6faece18d91ce807026197cface429db
--
2.34.1
Powered by blists - more mailing lists