Enable ATS on device-tree based systems, and factor the common ATS enablement checks into pci_enable_ats(). Since v1 [1] I added acks and review tags, simplified patch 3 and tried to clarify the comment in patch 2. I'd like acks or comments on the following patches: * PCI on patches 2, 3 and 5 * Arm SMMUv3 on patch 7 * Intel VT-d on patch 8 * arm64 DT on patch 10 Thanks, Jean [1] https://lore.kernel.org/linux-iommu/20200213165049.508908-1-jean-philippe@xxxxxxxxxx/ Jean-Philippe Brucker (11): dt-bindings: PCI: generic: Add ats-supported property PCI: Add ats_supported host bridge flag PCI: OF: Check whether the host bridge supports ATS ACPI/IORT: Check ATS capability in root complex node PCI/ATS: Gather checks into pci_ats_supported() iommu/amd: Use pci_ats_supported() iommu/arm-smmu-v3: Use pci_ats_supported() iommu/vt-d: Use pci_ats_supported() ACPI/IORT: Drop ATS fwspec flag arm64: dts: fast models: Enable PCIe ATS for Base RevC FVP Documentation: Generalize the "pci=noats" boot parameter .../admin-guide/kernel-parameters.txt | 4 +- .../bindings/pci/host-generic-pci.yaml | 6 +++ arch/arm64/boot/dts/arm/fvp-base-revc.dts | 1 + drivers/acpi/arm64/iort.c | 38 +++++++++++++------ drivers/acpi/pci_root.c | 3 ++ drivers/iommu/amd_iommu.c | 12 ++---- drivers/iommu/arm-smmu-v3.c | 18 ++------- drivers/iommu/intel-iommu.c | 9 ++--- drivers/pci/ats.c | 30 ++++++++++++++- drivers/pci/controller/pci-host-common.c | 11 ++++++ drivers/pci/probe.c | 8 ++++ include/linux/acpi_iort.h | 8 ++++ include/linux/iommu.h | 4 -- include/linux/pci-ats.h | 3 ++ include/linux/pci.h | 1 + 15 files changed, 109 insertions(+), 47 deletions(-) -- 2.25.1