[PATCH v3 0/9] Add PCI ATS support to Arm SMMUv3

Jean-Philippe Brucker
2019-04-17T18:24:39Z

This series enables PCI ATS in SMMUv3. Changes since v2 [1]:

* Fix build failure when building arm-smmu-v3 without CONFIG_PCI
Patches 1 and 2 are new.

* Only enable ATS if the root complex supports it. For the moment, only
IORT provides this information. I have patches for devicetree but
they are less mature and I'd rather make it a separate series.

* Tried to address most comments. I'll see if I can improve the firmware
code when adding devicetree support (see [2]).

Note that there is a small conflict with the SVA API. This series
applies on top of Joerg's api-features branch for v5.2.

[1] https://www.spinics.net/lists/arm-kernel/msg719722.html
[2] git://linux-arm.org/linux-jpb.git ats/current

Jean-Philippe Brucker (9):
PCI: Move ATS declarations outside of CONFIG_PCI
PCI: Add a stub for pci_ats_disabled()
ACPI/IORT: Check ATS capability in root complex nodes
iommu/arm-smmu-v3: Rename arm_smmu_master_data to arm_smmu_master
iommu/arm-smmu-v3: Store SteamIDs in master
iommu/arm-smmu-v3: Add a master->domain pointer
iommu/arm-smmu-v3: Link domains and devices
iommu/arm-smmu-v3: Add support for PCI ATS
iommu/arm-smmu-v3: Disable tagged pointers

drivers/acpi/arm64/iort.c | 11 ++
drivers/iommu/arm-smmu-v3.c | 345 ++++++++++++++++++++++++++++--------
include/linux/iommu.h | 4 +
include/linux/pci.h | 31 ++--
4 files changed, 306 insertions(+), 85 deletions(-)

--
2.21.0