[git pull] IOMMU Updates for Linux v5.12

From: Joerg Roedel
Date: Mon Feb 22 2021 - 11:18:26 EST


Hi Linus,

The following changes since commit 92bf22614b21a2706f4993b278017e437f7785b3:

Linux 5.11-rc7 (2021-02-07 13:57:38 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v5.12

for you to fetch changes up to 45e606f2726926b04094e1c9bf809bca4884c57f:

Merge branches 'arm/renesas', 'arm/smmu', 'x86/amd', 'x86/vt-d' and 'core' into next (2021-02-12 15:27:17 +0100)

----------------------------------------------------------------
IOMMU Updates for Linux v5.12

Including:

- ARM SMMU and Mediatek updates from Will Deacon:

- Support for MT8192 IOMMU from Mediatek

- Arm v7s io-pgtable extensions for MT8192

- Removal of TLBI_ON_MAP quirk

- New Qualcomm compatible strings

- Allow SVA without hardware broadcast TLB maintenance
on SMMUv3

- Virtualization Host Extension support for SMMUv3 (SVA)

- Allow SMMUv3 PMU (perf) driver to be built
independently from IOMMU

- Some tidy-up in IOVA and core code

- Conversion of the AMD IOMMU code to use the generic
IO-page-table framework

- Intel VT-d updates from Lu Baolu:

- Audit capability consistency among different IOMMUs

- Add SATC reporting structure support

- Add iotlb_sync_map callback support

- SDHI Support for Renesas IOMMU driver

- Misc Cleanups and other small improvments

----------------------------------------------------------------
Adrian Huang (1):
iommu/amd: Remove unnecessary assignment

Bjorn Andersson (2):
dt-bindings: arm-smmu-qcom: Add Qualcomm SC8180X compatible
iommu/arm-smmu-qcom: Add Qualcomm SC8180X impl

Bjorn Helgaas (1):
iommu/vt-d: Fix 'physical' typos

Colin Ian King (1):
iommu/mediatek: Fix unsigned domid comparison with less than zero

Dan Carpenter (1):
iommu/mediatek: Fix error code in probe()

Douglas Anderson (1):
iommu: Properly pass gfp_t in _iommu_map() to avoid atomic sleeping

Isaac J. Manjarres (1):
iommu/arm-smmu-qcom: Fix mask extraction for bootloader programmed SMRs

Jean-Philippe Brucker (3):
iommu/arm-smmu-v3: Split arm_smmu_tlb_inv_range()
iommu/arm-smmu-v3: Make BTM optional for SVA
iommu/arm-smmu-v3: Add support for VHE

Joerg Roedel (2):
Merge tag 'arm-smmu-updates' of git://git.kernel.org/.../will/linux into arm/smmu
Merge branches 'arm/renesas', 'arm/smmu', 'x86/amd', 'x86/vt-d' and 'core' into next

John Garry (7):
iova: Make has_iova_flush_queue() private
iova: Delete copy_reserved_iova()
iova: Stop exporting some more functions
iommu: Stop exporting iommu_map_sg_atomic()
iommu: Delete iommu_domain_window_disable()
iommu: Delete iommu_dev_has_feature()
driver/perf: Remove ARM_SMMU_V3_PMU dependency on ARM_SMMU_V3

Kyung Min Park (2):
iommu/vt-d: Audit IOMMU Capabilities and add helper functions
iommu/vt-d: Move capability check code to cap_audit files

Lianbo Jiang (2):
dma-iommu: use static-key to minimize the impact in the fast-path
iommu: use the __iommu_attach_device() directly for deferred attach

Lu Baolu (7):
iommu/vt-d: Consolidate duplicate cache invaliation code
iommu/vt-d: Add qi_submit trace event
iommu/vt-d: Preset Access/Dirty bits for IOVA over FL
iommu/vt-d: Clear PRQ overflow only when PRQ is empty
iommu/vt-d: Use INVALID response code instead of FAILURE
iommu/vt-d: Fix compile error [-Werror=implicit-function-declaration]
iommu/vt-d: Add iotlb_sync_map callback

Lukas Bulwahn (1):
MAINTAINERS: repair file pattern in MEDIATEK IOMMU DRIVER

Robin Murphy (3):
iommu/arm-smmu-v3: Remove the page 1 fixup
iommu/msm: Hook up iotlb_sync_map
iommu/io-pgtable: Remove TLBI_ON_MAP quirk

Suravee Suthikulpanit (14):
iommu/amd: Re-define amd_iommu_domain_encode_pgtable as inline
iommu/amd: Prepare for generic IO page table framework
iommu/amd: Move pt_root to struct amd_io_pgtable
iommu/amd: Convert to using amd_io_pgtable
iommu/amd: Declare functions as extern
iommu/amd: Move IO page table related functions
iommu/amd: Restructure code for freeing page table
iommu/amd: Remove amd_iommu_domain_get_pgtable
iommu/amd: Rename variables to be consistent with struct io_pgtable_ops
iommu/amd: Refactor fetch_pte to use struct amd_io_pgtable
iommu/amd: Introduce iommu_v1_iova_to_phys
iommu/amd: Introduce iommu_v1_map_page and iommu_v1_unmap_page
iommu/amd: Adopt IO page table framework for AMD IOMMU v1 page table
iommu/amd: Fix performance counter initialization

Tom Rix (1):
iommu/amd: remove h from printk format specifier

Vinod Koul (2):
dt-bindings: arm-smmu: Add sm8350 compatible string
iommu: arm-smmu-impl: Add SM8350 qcom iommu implementation

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

Yian Chen (2):
iommu/vt-d: Add new enum value and structure for SATC
iommu/vt-d: Parse SATC reporting structure

Yong Wu (38):
iommu: Move iotlb_sync_map out from __iommu_map
iommu: Add iova and size as parameters in iotlb_sync_map
iommu/mediatek: Add iotlb_sync_map to sync whole the iova range
iommu: Switch gather->end to the inclusive end
iommu/io-pgtable: Allow io_pgtable_tlb ops optional
iommu/mediatek: Gather iova in iommu_unmap to achieve tlb sync once
iommu/mediatek: Remove the tlb-ops for v7s
dt-bindings: iommu: mediatek: Convert IOMMU to DT schema
dt-bindings: memory: mediatek: Add a common memory header file
dt-bindings: memory: mediatek: Extend LARB_NR_MAX to 32
dt-bindings: memory: mediatek: Rename header guard for SMI header file
dt-bindings: mediatek: Add binding for mt8192 IOMMU
iommu/mediatek: Use the common mtk-memory-port.h
iommu/io-pgtable-arm-v7s: Use ias to check the valid iova in unmap
iommu/io-pgtable-arm-v7s: Extend PA34 for MediaTek
iommu/io-pgtable-arm-v7s: Clarify LVL_SHIFT/BITS macro
iommu/io-pgtable-arm-v7s: Add cfg as a param in some macros
iommu/io-pgtable-arm-v7s: Quad lvl1 pgtable for MediaTek
iommu/mediatek: Add a flag for iova 34bits case
iommu/mediatek: Update oas for v7s
iommu/mediatek: Move hw_init into attach_device
iommu/mediatek: Add error handle for mtk_iommu_probe
iommu/mediatek: Add device link for smi-common and m4u
iommu/mediatek: Add pm runtime callback
iommu/mediatek: Add power-domain operation
iommu/mediatek: Support up to 34bit iova in tlb flush
iommu/mediatek: Support report iova 34bit translation fault in ISR
iommu/mediatek: Adjust the structure
iommu/mediatek: Move domain_finalise into attach_device
iommu/mediatek: Move geometry.aperture updating into domain_finalise
iommu/mediatek: Add iova_region structure
iommu/mediatek: Add get_domain_id from dev->dma_range_map
iommu/mediatek: Support for multi domains
iommu/mediatek: Add iova reserved function
iommu/mediatek: Support master use iova over 32bit
iommu/mediatek: Remove unnecessary check in attach_device
iommu/mediatek: Add mt8192 support
MAINTAINERS: Add entry for MediaTek IOMMU

Yoshihiro Shimoda (2):
iommu/ipmmu-vmsa: Refactor ipmmu_of_xlate()
iommu/ipmmu-vmsa: Allow SDHI devices

Zhen Lei (1):
iommu/arm-smmu-v3: Use DEFINE_RES_MEM() to simplify code

Zheng Yongjun (1):
iommu/amd: Use DEFINE_SPINLOCK() for spinlock

.../devicetree/bindings/iommu/arm,smmu.yaml | 2 +
.../devicetree/bindings/iommu/mediatek,iommu.txt | 105 ----
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 183 ++++++
MAINTAINERS | 9 +
drivers/iommu/amd/Kconfig | 1 +
drivers/iommu/amd/Makefile | 2 +-
drivers/iommu/amd/amd_iommu.h | 22 +
drivers/iommu/amd/amd_iommu_types.h | 43 +-
drivers/iommu/amd/init.c | 54 +-
drivers/iommu/amd/io_pgtable.c | 558 +++++++++++++++++
drivers/iommu/amd/iommu.c | 672 +++------------------
drivers/iommu/amd/iommu_v2.c | 4 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 10 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 154 +++--
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 14 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 5 +
drivers/iommu/dma-iommu.c | 29 +-
drivers/iommu/intel/Makefile | 2 +-
drivers/iommu/intel/cap_audit.c | 205 +++++++
drivers/iommu/intel/cap_audit.h | 130 ++++
drivers/iommu/intel/dmar.c | 11 +
drivers/iommu/intel/iommu.c | 279 +++++----
drivers/iommu/intel/irq_remapping.c | 8 +
drivers/iommu/intel/pasid.c | 18 +-
drivers/iommu/intel/svm.c | 73 +--
drivers/iommu/io-pgtable-arm-v7s.c | 65 +-
drivers/iommu/io-pgtable.c | 3 +
drivers/iommu/iommu.c | 54 +-
drivers/iommu/iova.c | 35 +-
drivers/iommu/ipmmu-vmsa.c | 53 +-
drivers/iommu/msm_iommu.c | 10 +-
drivers/iommu/mtk_iommu.c | 410 +++++++++----
drivers/iommu/mtk_iommu.h | 12 +-
drivers/iommu/tegra-gart.c | 7 +-
drivers/memory/mtk-smi.c | 8 +
drivers/perf/Kconfig | 2 +-
include/acpi/actbl1.h | 11 +-
include/dt-bindings/memory/mt2701-larb-port.h | 4 +-
include/dt-bindings/memory/mt2712-larb-port.h | 6 +-
include/dt-bindings/memory/mt6779-larb-port.h | 6 +-
include/dt-bindings/memory/mt8167-larb-port.h | 6 +-
include/dt-bindings/memory/mt8173-larb-port.h | 6 +-
include/dt-bindings/memory/mt8183-larb-port.h | 6 +-
include/dt-bindings/memory/mt8192-larb-port.h | 243 ++++++++
include/dt-bindings/memory/mtk-memory-port.h | 15 +
include/linux/dmar.h | 2 +
include/linux/intel-iommu.h | 43 +-
include/linux/io-pgtable.h | 19 +-
include/linux/iommu.h | 21 +-
include/linux/iova.h | 12 -
include/soc/mediatek/smi.h | 3 +-
include/trace/events/intel_iommu.h | 39 +-
52 files changed, 2389 insertions(+), 1305 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
create mode 100644 drivers/iommu/amd/io_pgtable.c
create mode 100644 drivers/iommu/intel/cap_audit.c
create mode 100644 drivers/iommu/intel/cap_audit.h
create mode 100644 include/dt-bindings/memory/mt8192-larb-port.h
create mode 100644 include/dt-bindings/memory/mtk-memory-port.h

Please pull.

Thanks,

Joerg

Attachment: signature.asc
Description: Digital signature