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

From: Will Deacon
Date: Thu Nov 07 2019 - 09:30:27 EST


Hi Joerg,

Please pull these Arm SMMU updates for 5.5. The main changes are support
for the Qualcomm SMMUv2 implementation in the SDM845 SoC using the recently
introduced "implementation hook" code, a bunch of preparatory work to
expose TTBR1 via the io-pgtable code so that two (distinct) page tables
can be attached to a domain at the same time and performance improvements
relating to runtime power management on SMMUv2 during unmap() and general
dispatch of the new TLB invalidation callbacks.

The Qualcomm patches necessitated some changes to their firmware interface
code, but that has been Acked by Andy and Bjorn.

There were some conflicts with the fixes I sent you previously, so this
branch has those same commits merged in because I didn't want to rebase.

Cheers,

Will

--->8

The following changes since commit 1be08f458d1602275b02f5357ef069957058f3fd:

iommu/io-pgtable-arm: Support all Mali configurations (2019-10-01 12:16:47 +0100)

are available in the Git repository at:

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

for you to fetch changes up to dd5ddd3c7a8c7ac382a82d15757f0ca3ab2b2dbc:

iommu/io-pgtable-arm: Rename IOMMU_QCOM_SYS_CACHE and improve doc (2019-11-07 12:19:05 +0000)

----------------------------------------------------------------
Christophe JAILLET (2):
iommu/io-pgtable: Move some initialization data to .init.rodata
iommu/arm-smmu: Axe a useless test in 'arm_smmu_master_alloc_smes()'

Rob Clark (1):
iommu/arm-smmu: Avoid pathological RPM behaviour for unmaps

Robin Murphy (12):
iommu/arm-smmu: Remove .tlb_inv_range indirection
iommu/arm-smmu: Remove "leaf" indirection
iommu/arm-smmu: Move .tlb_sync method to implementation
iommu/arm-smmu: Remove arm_smmu_flush_ops
iommu/arm-smmu: Report USF more clearly
iommu/io-pgtable: Make selftest gubbins consistently __init
iommu/io-pgtable-arm: Rationalise size check
iommu/io-pgtable-arm: Simplify bounds checks
iommu/io-pgtable-arm: Simplify start level lookup
iommu/io-pgtable-arm: Simplify PGD size handling
iommu/io-pgtable-arm: Simplify level indexing
iommu/io-pgtable-arm: Rationalise MAIR handling

Vivek Gautam (3):
firmware: qcom_scm-64: Add atomic version of qcom_scm_call
firmware/qcom_scm: Add scm call to handle smmu errata
iommu: arm-smmu-impl: Add sdm845 implementation hook

Will Deacon (3):
firmware: qcom: scm: Ensure 'a0' status code is treated as signed
Merge branch 'for-joerg/arm-smmu/fixes' into for-joerg/arm-smmu/updates
iommu/io-pgtable-arm: Rename IOMMU_QCOM_SYS_CACHE and improve doc

drivers/firmware/qcom_scm-32.c | 5 +
drivers/firmware/qcom_scm-64.c | 153 ++++++++++++++++++--------
drivers/firmware/qcom_scm.c | 6 +
drivers/firmware/qcom_scm.h | 5 +
drivers/iommu/Makefile | 2 +-
drivers/iommu/arm-smmu-impl.c | 5 +-
drivers/iommu/arm-smmu-qcom.c | 51 +++++++++
drivers/iommu/arm-smmu-v3.c | 2 +-
drivers/iommu/arm-smmu.c | 217 +++++++++++++++++++++----------------
drivers/iommu/arm-smmu.h | 16 +--
drivers/iommu/io-pgtable-arm-v7s.c | 15 +--
drivers/iommu/io-pgtable-arm.c | 130 +++++++++++-----------
drivers/iommu/ipmmu-vmsa.c | 2 +-
drivers/iommu/qcom_iommu.c | 4 +-
include/linux/io-pgtable.h | 2 +-
include/linux/iommu.h | 8 +-
include/linux/qcom_scm.h | 2 +
17 files changed, 397 insertions(+), 228 deletions(-)
create mode 100644 drivers/iommu/arm-smmu-qcom.c