[git pull] IOMMU Updates for Linux v6.14

From: Joerg Roedel
Date: Wed Jan 22 2025 - 03:58:48 EST


Hi Linus,

The following changes since commit 5bc55a333a2f7316b58edc7573e8e893f7acb532:

Linux 6.13-rc7 (2025-01-12 14:37:56 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git tags/iommu-updates-v6.14

for you to fetch changes up to 125f34e4c107b151029ccbeea92631481bf5a6a1:

Merge branches 'arm/smmu/updates', 'arm/smmu/bindings', 'qualcomm/msm', 'rockchip', 'riscv', 'core', 'intel/vt-d' and 'amd/amd-vi' into next (2025-01-17 09:02:35 +0100)

----------------------------------------------------------------
IOMMU Updates for Linux v6.14

Including:

- Core changes:
- PASID support for the blocked_domain.

- ARM-SMMU Updates:
- SMMUv2:
* Implement per-client prefetcher configuration on Qualcomm SoCs.
* Support for the Adreno SMMU on Qualcomm's SDM670 SOC.
- SMMUv3:
* Pretty-printing of event records.
* Drop the ->domain_alloc_paging implementation in favour of
->domain_alloc_paging_flags(flags==0).
- IO-PGTable:
* Generalisation of the page-table walker to enable external walkers
(e.g. for debugging unexpected page-faults from the GPU).
* Minor fix for handling concatenated PGDs at stage-2 with 16KiB pages.
- Misc:
* Clean-up device probing and replace the crufty probe-deferral hack
with a more robust implementation of arm_smmu_get_by_fwnode().
* Device-tree binding updates for a bunch of Qualcomm platforms.

- Intel VT-d Updates:
- Remove domain_alloc_paging().
- Remove capability audit code.
- Draining PRQ in sva unbind path when FPD bit set.
- Link cache tags of same iommu unit together.

- AMD-Vi Updates:
- Use CMPXCHG128 to update DTE.
- Cleanups of the domain_alloc_paging() path.

- RiscV IOMMU:
- Platform MSI support.
- Shutdown support.

- Rockchip IOMMU:
- Add DT bindings for Rockchip RK3576.

- More smaller fixes and cleanups.

----------------------------------------------------------------
Alejandro Jimenez (1):
iommu/amd: Remove unused amd_iommu_domain_update()

Andrew Jones (1):
iommu/riscv: Add support for platform msi

Andy Yan (1):
dt-bindings: iommu: rockchip: Add Rockchip RK3576

Barnabás Czémán (1):
dt-bindings: iommu: qcom,iommu: Add MSM8917 IOMMU to SMMUv1 compatibles

Bibek Kumar Patro (5):
iommu/arm-smmu: Re-enable context caching in smmu reset operation
iommu/arm-smmu: Refactor qcom_smmu structure to include single pointer
iommu/arm-smmu: Add support for PRR bit setup
iommu/arm-smmu: Introduce ACTLR custom prefetcher settings
iommu/arm-smmu: Add ACTLR data and support for qcom_smmu_500

Gao Shiyuan (1):
iommu/amd: remove return value of amd_iommu_detect

Guo Ren (1):
iommu/riscv: Fixup compile warning

Jason Gunthorpe (12):
iommu/arm-smmuv3: Update comments about ATS and bypass
iommu/arm-smmu-v3: Remove arm_smmu_domain_finalise() during attach
iommu/arm-smmu-v3: Make domain_alloc_paging_flags() directly determine the S1/S2
iommu/arm-smmu-v3: Remove domain_alloc_paging()
iommu/arm-smmu-v3: Make the blocked domain support PASID
iommu/vt-d: Remove domain_alloc_paging()
iommu/amd: Remove domain_alloc()
iommu/amd: Remove dev == NULL checks
iommu/amd: Remove type argument from do_iommu_domain_alloc() and related
iommu/amd: Change amd_iommu_pgtable to use enum protection_domain_mode
iommu/amd: Move the nid to pdom_setup_pgtable()
iommu/amd: Fully decode all combinations of alloc_paging_flags

Joerg Roedel (1):
Merge branches 'arm/smmu/updates', 'arm/smmu/bindings', 'qualcomm/msm', 'rockchip', 'riscv', 'core', 'intel/vt-d' and 'amd/amd-vi' into next

Kees Bakker (1):
iommu/vt-d: Avoid use of NULL after WARN_ON_ONCE

Krzysztof Kozlowski (1):
iommu: Use str_enable_disable-like helpers

Lu Baolu (2):
iommu/vt-d: Remove iommu cap audit
iommu/vt-d: Draining PRQ in sva unbind path when FPD bit set

Melody Olvera (1):
dt-bindings: arm-smmu: Document SM8750 SMMU

Mostafa Saleh (3):
iommu/io-pgtable-arm: Fix stage-2 concatenation with 16K
iommu/io-pgtable-arm: Add coverage for different OAS in selftest
iommu/io-pgtable-arm: Fix cfg reading in arm_lpae_concat_mandatory()

Nicolin Chen (1):
iommu/tegra241-cmdqv: Read SMMU IDR1.CMDQS instead of hardcoding

Pranjal Shrivastava (3):
iommu/arm-smmu-v3: Introduce struct arm_smmu_event
iommu/arm-smmu-v3: Log better event records
iommu/arm-smmu-v3: Use str_read_write helper w/ logs

Qingqing Zhou (1):
dt-bindings: arm-smmu: document QCS615 GPU SMMU

Richard Acayan (2):
dt-bindings: iommu: arm,smmu: add sdm670 adreno iommu compatible
iommu/arm-smmu-qcom: add sdm670 adreno iommu compatible

Rob Clark (3):
iommu/io-pgtable-arm: Make pgtable walker more generic
iommu/io-pgtable-arm: Re-use the pgtable walk for iova_to_phys
iommu/io-pgtable-arm: Add way to debug pgtable walk

Robin Murphy (5):
iommu/arm-smmu: Make instance lookup robust
iommu/arm-smmu: Retire probe deferral workaround
iommu/arm-smmu-v3: Clean up more on probe failure
iommu: Manage driver probe deferral better
iommu/arm-smmu-v3: Document SVA interaction with new pagetable features

Suravee Suthikulpanit (9):
iommu/amd: Misc ACPI IVRS debug info clean up
iommu/amd: Disable AMD IOMMU if CMPXCHG16B feature is not supported
iommu/amd: Introduce struct ivhd_dte_flags to store persistent DTE flags
iommu/amd: Introduce helper function to update 256-bit DTE
iommu/amd: Modify set_dte_entry() to use 256-bit DTE helpers
iommu/amd: Introduce helper function get_dte256()
iommu/amd: Modify clear_dte_entry() to avoid in-place update
iommu/amd: Lock DTE before updating the entry with WRITE_ONCE()
iommu/amd: Remove amd_iommu_apply_erratum_63()

Will Deacon (1):
iommu/arm-smmu-v3: Add missing #include of linux/string_choices.h

Xu Lu (2):
iommu/riscv: Empty iommu queue before enabling it
iommu/riscv: Add shutdown function for iommu driver

Yi Liu (6):
iommu: Prevent pasid attach if no ops->remove_dev_pasid
iommu: Consolidate the ops->remove_dev_pasid usage into a helper
iommu: Detaching pasid by attaching to the blocked_domain
iommu/vt-d: Make the blocked domain support PASID
iommu/amd: Make the blocked domain support PASID
iommu: Remove the remove_dev_pasid op

Zhang Heng (1):
iommu/msm: Use helper function devm_clk_get_prepared()

Zhenzhong Duan (1):
iommu/vt-d: Link cache tags of same iommu unit together

Documentation/arch/arm64/silicon-errata.rst | 3 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 23 +-
.../devicetree/bindings/iommu/qcom,iommu.yaml | 1 +
.../devicetree/bindings/iommu/rockchip,iommu.yaml | 1 +
drivers/iommu/Kconfig | 12 +
drivers/iommu/amd/amd_iommu.h | 9 +-
drivers/iommu/amd/amd_iommu_types.h | 41 +-
drivers/iommu/amd/init.c | 253 +++++-----
drivers/iommu/amd/iommu.c | 532 +++++++++++++--------
drivers/iommu/amd/pasid.c | 3 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 15 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 298 ++++++++----
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 31 +-
drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c | 8 +-
drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 5 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 2 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 121 ++++-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 3 +-
drivers/iommu/arm/arm-smmu/arm-smmu.c | 43 +-
drivers/iommu/arm/arm-smmu/arm-smmu.h | 2 +
drivers/iommu/intel/Makefile | 2 +-
drivers/iommu/intel/cache.c | 11 +-
drivers/iommu/intel/cap_audit.c | 217 ---------
drivers/iommu/intel/cap_audit.h | 131 -----
drivers/iommu/intel/iommu.c | 47 +-
drivers/iommu/intel/irq_remapping.c | 8 -
drivers/iommu/intel/pasid.c | 22 +-
drivers/iommu/intel/pasid.h | 6 +
drivers/iommu/io-pgtable-arm.c | 227 +++++----
drivers/iommu/iommu.c | 37 +-
drivers/iommu/msm_iommu.c | 51 +-
drivers/iommu/mtk_iommu.c | 9 +-
drivers/iommu/mtk_iommu_v1.c | 3 +-
drivers/iommu/of_iommu.c | 2 -
drivers/iommu/riscv/iommu-pci.c | 8 +
drivers/iommu/riscv/iommu-platform.c | 108 ++++-
drivers/iommu/riscv/iommu.c | 14 +-
drivers/iommu/riscv/iommu.h | 1 +
drivers/iommu/rockchip-iommu.c | 3 +-
include/linux/adreno-smmu-priv.h | 7 +
include/linux/amd-iommu.h | 4 +-
include/linux/io-pgtable.h | 11 +
include/linux/iommu.h | 5 -
43 files changed, 1304 insertions(+), 1036 deletions(-)
delete mode 100644 drivers/iommu/intel/cap_audit.c
delete mode 100644 drivers/iommu/intel/cap_audit.h

Please pull.

Thanks,

Joerg

Attachment: signature.asc
Description: Digital signature