All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sui Jingfeng <sui.jingfeng@linux.dev>
To: Lucas Stach <l.stach@pengutronix.de>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>,
	Sui Jingfeng <sui.jingfeng@linux.dev>,
	etnaviv@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Subject: [etnaviv-next v12 0/8] drm/etnaviv: Add PCI(e) device driver wrapper and instances
Date: Thu, 30 Nov 2023 06:02:23 +0800	[thread overview]
Message-ID: <20231129220231.12763-1-sui.jingfeng@linux.dev> (raw)

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


WARNING: multiple messages have this Message-ID (diff)
From: Sui Jingfeng <sui.jingfeng@linux.dev>
To: Lucas Stach <l.stach@pengutronix.de>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>,
	dri-devel@lists.freedesktop.org, etnaviv@lists.freedesktop.org,
	linux-kernel@vger.kernel.org,
	Sui Jingfeng <sui.jingfeng@linux.dev>
Subject: [etnaviv-next v12 0/8] drm/etnaviv: Add PCI(e) device driver wrapper and instances
Date: Thu, 30 Nov 2023 06:02:23 +0800	[thread overview]
Message-ID: <20231129220231.12763-1-sui.jingfeng@linux.dev> (raw)

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


             reply	other threads:[~2023-11-29 22:02 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-29 22:02 Sui Jingfeng [this message]
2023-11-29 22:02 ` [etnaviv-next v12 0/8] drm/etnaviv: Add PCI(e) device driver wrapper and instances Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 1/8] drm/etnaviv: Add a helper function to get clocks Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 2/8] drm/etnaviv: Add constructor and destructor for struct etnaviv_drm_private Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 3/8] drm/etnaviv: Allow bypass component framework Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 4/8] drm/etnaviv: Support for the vivante GPU core attached on PCI(e) device Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 5/8] drm/etnaviv: Add support for cached coherent caching mode Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 6/8] drm/etnaviv: Embed struct drm_device in struct etnaviv_drm_private Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 7/8] drm/etnaviv: Add support for the JingJia Macro and LingJiu PCI(e) GPUs Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng
2023-11-29 22:02 ` [etnaviv-next v12 8/8] drm/etnaviv: Support binding multiple GPU cores with component Sui Jingfeng
2023-11-29 22:02   ` Sui Jingfeng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231129220231.12763-1-sui.jingfeng@linux.dev \
    --to=sui.jingfeng@linux.dev \
    --cc=christian.gmeiner@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=etnaviv@lists.freedesktop.org \
    --cc=l.stach@pengutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.