dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/17] drm/msm/adreno: Introduce Adreno 8xx family support
@ 2025-09-30  5:48 Akhil P Oommen
  2025-09-30  5:48 ` [PATCH 01/17] soc: qcom: ubwc: Add config for Kaanapali Akhil P Oommen
                   ` (17 more replies)
  0 siblings, 18 replies; 54+ messages in thread
From: Akhil P Oommen @ 2025-09-30  5:48 UTC (permalink / raw)
  To: Rob Clark, Bjorn Andersson, Konrad Dybcio, Sean Paul,
	Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang, Marijn Suijten,
	David Airlie, Simona Vetter, Jonathan Marek, Jordan Crouse,
	Will Deacon, Robin Murphy, Joerg Roedel, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann
  Cc: linux-arm-msm, linux-kernel, dri-devel, freedreno,
	linux-arm-kernel, iommu, devicetree, Akhil P Oommen

This series adds the A8xx HWL along with Adreno 840 GPU support to the
drm-msm driver. A8x is the next generation in the Adreno family,
featuring a significant hardware design change. A major update to the
design is the introduction of 'Slice' architecture. Slices are sort of
mini-GPUs within the GPU which are more independent in processing Graphics
and compute workloads. Also, in addition to the BV and BR pipe we saw in
A7x, CP has more concurrency with additional pipes.

From KMD-HW SWI perspective, there is significant register shuffling in
some of the blocks. For slice or aperture related registers which are
virtualized now, KMD/crashdumper has to configure an aperture register
to access them. On the GMU front, there are some shuffling in register
offsets, but it is manageable as of now. There is a new HFI message to
transfer data tables and new power related features to support higher
peak currents and thermal mitigations.

Adreno 840 GPU is the second generation architecture in the A8x family
present in Kaanapali (a.k.a Snapdragon 8 Elite Gen 5) chipset [1]. It
has a maximum of 3 slices with 2 SPs per slice. Along with the 3-slice
configuration, there is also another 2-slice SKU (Partial Slice SKU).
A840 GPU has a bigger 18MB of GMEM which can be utilized for graphics
and compute workload. It also features improved Concurrent binning
support, UBWC v6 etc.

This series adds only the driver side support along with a few dt bindings
updates. Devicetree patches will be sent separately, but those who
are interested can take look at it from the Qualcomm's public tree [2].
Features like coredump, gmu power features, ifpc, preemption etc will be
added in a future series.

Initial few patches are for improving code sharing between a6xx/a7xx and
a8x routines. Then there is a patch to rebase GMU register offsets from
GPU's base. Rest of the patches add A8x HWL and Adreno 840 GPU support.

Mesa support for A8x/A840 GPU is WIP and will be posted in the near
future.

[1] https://www.qualcomm.com/products/mobile/snapdragon/smartphones/snapdragon-8-series-mobile-platforms/snapdragon-8-elite-gen-5
[2] https://git.codelinaro.org/clo/linux-kernel/kernel-qcom/-/commit/5fb72c27909d56660db6afe8e3e08a09bd83a284

Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
---
Akhil P Oommen (17):
      soc: qcom: ubwc: Add config for Kaanapali
      drm/msm/a6xx: Fix the gemnoc workaround
      drm/msm/adreno: Common-ize PIPE definitions
      drm/msm/adreno: Create adreno_func->submit_flush()
      drm/msm/a6xx: Rename and move a7xx_cx_mem_init()
      drm/msm/adreno: Move adreno_gpu_func to catalogue
      drm/msm/adreno: Move gbif_halt() to adreno_gpu_func
      drm/msm/adreno: Add MMU fault handler to adreno_gpu_func
      drm/msm/a6xx: Sync latest register definitions
      drm/msm/a6xx: Rebase GMU register offsets
      drm/msm/a8xx: Add support for A8x GMU
      drm/msm/adreno: Introduce A8x GPU Support
      drm/msm/adreno: Support AQE engine
      drm/msm/a8xx: Add support for Adreno 840 GPU
      drm/msm/adreno: Do CX GBIF config before GMU start
      dt-bindings: arm-smmu: Add Kaanapali GPU SMMU
      dt-bindings: display/msm/gmu: Add Adreno 840 GMU

 .../devicetree/bindings/display/msm/gmu.yaml       |   30 +-
 .../devicetree/bindings/iommu/arm,smmu.yaml        |    1 +
 drivers/gpu/drm/msm/Makefile                       |    2 +
 drivers/gpu/drm/msm/adreno/a2xx_catalog.c          |    8 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              |   50 +-
 drivers/gpu/drm/msm/adreno/a3xx_catalog.c          |   14 +-
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |   52 +-
 drivers/gpu/drm/msm/adreno/a4xx_catalog.c          |    8 +-
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |   54 +-
 drivers/gpu/drm/msm/adreno/a5xx_catalog.c          |   18 +-
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |   61 +-
 drivers/gpu/drm/msm/adreno/a6xx_catalog.c          |  284 ++-
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c              |  233 ++-
 drivers/gpu/drm/msm/adreno/a6xx_gmu.h              |   25 +-
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              |  389 ++--
 drivers/gpu/drm/msm/adreno/a6xx_gpu.h              |   24 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h        |   18 +-
 drivers/gpu/drm/msm/adreno/a6xx_hfi.c              |   53 +
 drivers/gpu/drm/msm/adreno/a6xx_hfi.h              |   17 +
 drivers/gpu/drm/msm/adreno/a8xx_gpu.c              | 1237 +++++++++++++
 drivers/gpu/drm/msm/adreno/adreno_device.c         |    4 +-
 .../gpu/drm/msm/adreno/adreno_gen7_0_0_snapshot.h  |  420 ++---
 .../gpu/drm/msm/adreno/adreno_gen7_2_0_snapshot.h  |  332 ++--
 .../gpu/drm/msm/adreno/adreno_gen7_9_0_snapshot.h  |  470 ++---
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |   35 +-
 drivers/gpu/drm/msm/registers/adreno/a6xx.xml      | 1942 +++++++++++++++-----
 .../gpu/drm/msm/registers/adreno/a6xx_enums.xml    |    2 +-
 drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml  |  283 +--
 .../gpu/drm/msm/registers/adreno/a7xx_enums.xml    |    7 -
 .../drm/msm/registers/adreno/a8xx_descriptors.xml  |  120 ++
 .../gpu/drm/msm/registers/adreno/a8xx_enums.xml    |  289 +++
 .../gpu/drm/msm/registers/adreno/adreno_common.xml |   12 +
 drivers/soc/qcom/ubwc_config.c                     |   11 +
 include/linux/soc/qcom/ubwc.h                      |    1 +
 34 files changed, 4890 insertions(+), 1616 deletions(-)
---
base-commit: 09c49a960070d0cdf79a593f3cccb830884f4c76
change-id: 20250929-kaana-gpu-support-11d21c8fa1dc

Best regards,
-- 
Akhil P Oommen <akhilpo@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 54+ messages in thread

end of thread, other threads:[~2025-11-04  3:49 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-30  5:48 [PATCH 00/17] drm/msm/adreno: Introduce Adreno 8xx family support Akhil P Oommen
2025-09-30  5:48 ` [PATCH 01/17] soc: qcom: ubwc: Add config for Kaanapali Akhil P Oommen
2025-09-30  7:02   ` Dmitry Baryshkov
2025-10-08 11:46   ` Konrad Dybcio
2025-09-30  5:48 ` [PATCH 02/17] drm/msm/a6xx: Fix the gemnoc workaround Akhil P Oommen
2025-09-30  7:03   ` Dmitry Baryshkov
2025-09-30  5:48 ` [PATCH 03/17] drm/msm/adreno: Common-ize PIPE definitions Akhil P Oommen
2025-09-30  7:05   ` Dmitry Baryshkov
2025-09-30  7:25     ` Rob Clark
2025-09-30 19:20       ` Dmitry Baryshkov
2025-09-30  5:48 ` [PATCH 04/17] drm/msm/adreno: Create adreno_func->submit_flush() Akhil P Oommen
2025-09-30  5:48 ` [PATCH 05/17] drm/msm/a6xx: Rename and move a7xx_cx_mem_init() Akhil P Oommen
2025-09-30  5:48 ` [PATCH 06/17] drm/msm/adreno: Move adreno_gpu_func to catalogue Akhil P Oommen
2025-09-30  7:09   ` Dmitry Baryshkov
2025-10-01 19:54     ` Akhil P Oommen
2025-10-02  1:01       ` Dmitry Baryshkov
2025-09-30  5:48 ` [PATCH 07/17] drm/msm/adreno: Move gbif_halt() to adreno_gpu_func Akhil P Oommen
2025-09-30  7:11   ` Dmitry Baryshkov
2025-09-30  5:48 ` [PATCH 08/17] drm/msm/adreno: Add MMU fault handler " Akhil P Oommen
2025-09-30  7:12   ` Dmitry Baryshkov
2025-09-30  5:48 ` [PATCH 09/17] drm/msm/a6xx: Sync latest register definitions Akhil P Oommen
2025-09-30  5:48 ` [PATCH 10/17] drm/msm/a6xx: Rebase GMU register offsets Akhil P Oommen
2025-09-30  7:23   ` Dmitry Baryshkov
2025-10-01 21:22     ` Akhil P Oommen
2025-10-02  1:03       ` Dmitry Baryshkov
2025-10-08 11:51   ` Konrad Dybcio
2025-09-30  5:48 ` [PATCH 11/17] drm/msm/a8xx: Add support for A8x GMU Akhil P Oommen
2025-09-30  7:25   ` Dmitry Baryshkov
2025-09-30  7:35   ` Dmitry Baryshkov
2025-10-01 21:30     ` Akhil P Oommen
2025-10-02  1:05       ` Dmitry Baryshkov
2025-09-30  5:48 ` [PATCH 12/17] drm/msm/adreno: Introduce A8x GPU Support Akhil P Oommen
2025-09-30  7:42   ` Dmitry Baryshkov
2025-09-30  8:08     ` Rob Clark
2025-09-30  8:41       ` Connor Abbott
2025-10-01 21:02         ` Akhil P Oommen
2025-10-02  1:08           ` Dmitry Baryshkov
2025-10-08 12:01   ` Konrad Dybcio
2025-10-28 20:22   ` Rob Clark
2025-10-30 14:04     ` Akhil P Oommen
2025-09-30  5:48 ` [PATCH 13/17] drm/msm/adreno: Support AQE engine Akhil P Oommen
2025-09-30  7:44   ` Dmitry Baryshkov
2025-09-30  8:27   ` Rob Clark
2025-10-01 22:00     ` Akhil P Oommen
2025-09-30  5:48 ` [PATCH 14/17] drm/msm/a8xx: Add support for Adreno 840 GPU Akhil P Oommen
2025-09-30  7:45   ` Dmitry Baryshkov
2025-09-30  5:48 ` [PATCH 15/17] drm/msm/adreno: Do CX GBIF config before GMU start Akhil P Oommen
2025-09-30  7:49   ` Dmitry Baryshkov
2025-10-01 22:03     ` Akhil P Oommen
2025-09-30  5:48 ` [PATCH 16/17] dt-bindings: arm-smmu: Add Kaanapali GPU SMMU Akhil P Oommen
2025-10-07  1:06   ` Rob Herring (Arm)
2025-09-30  5:48 ` [PATCH 17/17] dt-bindings: display/msm/gmu: Add Adreno 840 GMU Akhil P Oommen
2025-10-07  1:08   ` Rob Herring (Arm)
2025-11-04  3:53 ` (subset) [PATCH 00/17] drm/msm/adreno: Introduce Adreno 8xx family support Bjorn Andersson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).