mbox series

[v2,0/7] drm/msm/a6xx: System Cache Support

Message ID 1538744915-25490-1-git-send-email-smasetty@codeaurora.org (mailing list archive)
Headers show
Series drm/msm/a6xx: System Cache Support | expand

Message

Sharat Masetty Oct. 5, 2018, 1:08 p.m. UTC
Some hardware variants contain a system level cache or the last level
cache(llc). This cache is typically a large block which is shared by multiple
clients on the SOC. GPU uses the system cache to cache both the GPU data
buffers(like textures) as well the SMMU pagetables. This helps with
improved render performance as well as lower power consumption by reducing
the bus traffic to the system memory.

The system cache architecture allows the cache to be split into slices which
then be used by multiple SOC clients. This patch series is an effort to enable
and use two of those slices perallocated for the GPU, one for the GPU data
buffers and another for the GPU SMMU hardware pagetables.

v2: Fixed code review comments from previous round. The first version was posted
a few months ago, so this is a refresh of the previous series. Update code to
conform to the newer version of the core llcc driver. Minor tweaks and
adjustments here and there.
Testing: Nothing breaks, but need to profile DDR traffic to see the impact the
cache blocks are really making.

Please review...

Jordan Crouse (1):
  soc: qcom: llcc-slice: Add error checks for API functions

Sharat Masetty (5):
  drm/msm: rearrange the gpu_rmw() function
  drm/msm/adreno: Add registers in the GPU CX domain
  arm64:dts:sdm845: Add register range for gpu CX
  drm/msm: Pass mmu features to generic layers
  drm/msm/a6xx: Add support for using system cache(LLC)

Vivek Gautam (1):
  iommu/arm-smmu: Add support to use Last level cache

 arch/arm64/boot/dts/qcom/sdm845.dtsi    |   4 +-
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c   |   2 +-
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c   |   2 +-
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c   |   2 +-
 drivers/gpu/drm/msm/adreno/a6xx.xml.h   |   3 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c   | 159 +++++++++++++++++++++++++++++++-
 drivers/gpu/drm/msm/adreno/a6xx_gpu.h   |   9 ++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c |   4 +-
 drivers/gpu/drm/msm/adreno/adreno_gpu.h |   2 +-
 drivers/gpu/drm/msm/msm_drv.c           |   8 ++
 drivers/gpu/drm/msm/msm_drv.h           |   1 +
 drivers/gpu/drm/msm/msm_gpu.c           |   6 +-
 drivers/gpu/drm/msm/msm_gpu.h           |   6 +-
 drivers/gpu/drm/msm/msm_iommu.c         |  13 +++
 drivers/gpu/drm/msm/msm_mmu.h           |  14 +++
 drivers/iommu/arm-smmu.c                |  14 +++
 drivers/iommu/io-pgtable-arm.c          |  24 ++++-
 drivers/iommu/io-pgtable.h              |   4 +
 drivers/soc/qcom/llcc-slice.c           |  15 ++-
 include/linux/iommu.h                   |   4 +
 20 files changed, 276 insertions(+), 20 deletions(-)

--
1.9.1