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

From: Will Deacon
Date: Fri Aug 13 2021 - 12:47:43 EST

Hi Joerg,

Please pull these Arm SMMU updates for 5.15. There's not tonnes here, but
a good mixture of optimisations and cleanups -- summary in the tag.

This applies cleanly against iommu/next, but I suspect it will conflict
with Robin's series on the list. Please shout if you need anything from
me to help with that (e.g. rebase, checking a merge conflict).




The following changes since commit ff1176468d368232b684f75e82563369208bc371:

Linux 5.14-rc3 (2021-07-25 15:35: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 fac956710ab0812f9e395e9f7a27da551412830f:

iommu/arm-smmu-v3: Stop pre-zeroing batch commands (2021-08-13 14:26:06 +0100)

Arm SMMU updates for 5.15

- SMMUv3

* Minor optimisation to avoid zeroing struct members on CMD submission

* Increased use of batched commands to reduce submission latency

* Refactoring in preparation for ECMDQ support

- SMMUv2

* Fix races when probing devices with identical StreamIDs

* Optimise walk cache flushing for Qualcomm implementations

* Allow deep sleep states for some Qualcomm SoCs with shared clocks

Ashish Mhetre (1):
iommu: Fix race condition during default domain allocation

John Garry (2):
iommu/arm-smmu-v3: Remove some unneeded init in arm_smmu_cmdq_issue_cmdlist()
iommu/arm-smmu-v3: Stop pre-zeroing batch commands

Krishna Reddy (1):
iommu/arm-smmu: Fix race condition during iommu_group creation

Sai Prakash Ranjan (2):
iommu/arm-smmu: Add clk_bulk_{prepare/unprepare} to system pm callbacks
iommu/arm-smmu: Optimize ->tlb_flush_walk() for qcom implementation

Zhen Lei (4):
iommu/arm-smmu-v3: Use command queue batching helpers to improve performance
iommu/arm-smmu-v3: Add and use static helper function arm_smmu_cmdq_issue_cmd_with_sync()
iommu/arm-smmu-v3: Add and use static helper function arm_smmu_get_cmdq()
iommu/arm-smmu-v3: Extract reusable function __arm_smmu_cmdq_skip_err()

drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 89 +++++++++++++++++------------
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 11 ++++
drivers/iommu/arm/arm-smmu/arm-smmu.c | 45 ++++++++++++---
drivers/iommu/arm/arm-smmu/arm-smmu.h | 1 +
drivers/iommu/iommu.c | 2 +
5 files changed, 106 insertions(+), 42 deletions(-)