[GIT PULL] iommu/arm-smmu: Updates for 6.12

From: Will Deacon
Date: Thu Sep 12 2024 - 08:59:49 EST


Hi Joerg,

Please pull these Arm SMMU updates for v6.12. The big new feature is
support for NVIDIA's virtual command queue implementation for SMMUv3,
but everything is summarised in the tag.

** Please note **: I've already pushed this to the arm/smmu branch for
-next coverage, but I thought sending a pull request was still useful
for the records and the signed tag. If you want to recreate the branch,
please feel free.

See you at LPC!

Cheers,

Will

--->8

The following changes since commit 7c626ce4bae1ac14f60076d00eafe71af30450ba:

Linux 6.11-rc3 (2024-08-11 14:27:14 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git tags/arm-smmu-updates

for you to fetch changes up to f1c6cf8e7ab9d7498ee70c69d5093165952d3595:

Merge branch 'for-joerg/arm-smmu/bindings' into for-joerg/arm-smmu/updates (2024-09-12 12:54:14 +0100)

----------------------------------------------------------------
Arm SMMU updates for 6.12

- SMMUv2:
* Devicetree binding updates for Qualcomm MMU-500 implementations.
* Extend workarounds for broken Qualcomm hypervisor to avoid touching
features that are not available (e.g. 16KiB page support, reserved
context banks).

- SMMUv3:
* Support for NVIDIA's custom virtual command queue hardware.
* Fix Stage-2 stall configuration and extend tests to cover this area.
* A bunch of driver cleanups, including simplification of the master
rbtree code.

- Plus minor cleanups and fixes across both drivers.

----------------------------------------------------------------
Dan Carpenter (2):
iommu/arm-smmu-v3: Fix a NULL vs IS_ERR() check
iommu/tegra241-cmdqv: Fix ioremap() error handling in probe()

Dmitry Baryshkov (1):
iommu/arm-smmu-qcom: apply num_context_bank fixes for SDM630 / SDM660

Jason Gunthorpe (10):
iommu/arm-smmu-v3: Add struct arm_smmu_impl_ops
iommu/arm-smmu-v3: Use the new rb tree helpers
iommu/arm-smmu-v3: Add arm_smmu_strtab_l1/2_idx()
iommu/arm-smmu-v3: Add types for each level of the 2 level stream table
iommu/arm-smmu-v3: Reorganize struct arm_smmu_strtab_cfg
iommu/arm-smmu-v3: Remove strtab_base/cfg
iommu/arm-smmu-v3: Do not use devm for the cd table allocations
iommu/arm-smmu-v3: Shrink the cdtab l1_desc array
iommu/arm-smmu-v3: Add types for each level of the CD table
iommu/arm-smmu-v3: Reorganize struct arm_smmu_ctx_desc_cfg

Konrad Dybcio (1):
iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages

Marc Gonzalez (1):
iommu/arm-smmu-qcom: hide last LPASS SMMU context bank from linux

Mostafa Saleh (2):
iommu/arm-smmu-v3: Match Stall behaviour for S2
iommu/arm-smmu-v3-test: Test masters with stall enabled

Nate Watterson (1):
iommu/arm-smmu-v3: Add in-kernel support for NVIDIA Tegra241 (Grace) CMDQV

Nicolin Chen (11):
iommu/arm-smmu-v3: Issue a batch of commands to the same cmdq
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_build_sync_cmd
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_init
iommu/arm-smmu-v3: Make symbols public for CONFIG_TEGRA241_CMDQV
iommu/arm-smmu-v3: Add ARM_SMMU_OPT_TEGRA241_CMDQV
iommu/arm-smmu-v3: Add acpi_smmu_iort_probe_model for impl
iommu/arm-smmu-v3: Start a new batch if new command is not supported
iommu/tegra241-cmdqv: Limit CMDs for VCMDQs of a guest owned VINTF
iommu/tegra241-cmdqv: Fix -Wformat-truncation warnings in lvcmdq_error_header
iommu/tegra241-cmdqv: Drop static at local variable
iommu/tegra241-cmdqv: Do not allocate vcmdq until dma_set_mask_and_coherent

Nikunj Kela (1):
dt-bindings: arm-smmu: document the support on SA8255p

Rob Clark (1):
iommu/arm-smmu: Un-demote unhandled-fault msg

Will Deacon (1):
Merge branch 'for-joerg/arm-smmu/bindings' into for-joerg/arm-smmu/updates

Zhang Zekun (1):
iommu/arm-smmu-v3: Remove the unused empty definition

Zhenhua Huang (1):
dt-bindings: arm-smmu: Add compatible for QCS8300 SoC

.../devicetree/bindings/iommu/arm,smmu.yaml | 5 +
MAINTAINERS | 1 +
drivers/iommu/Kconfig | 11 +
drivers/iommu/arm/arm-smmu-v3/Makefile | 1 +
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c | 83 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 576 +++++++------
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 137 +++-
drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c | 909 +++++++++++++++++++++
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 28 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 2 +-
10 files changed, 1463 insertions(+), 290 deletions(-)
create mode 100644 drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c