Commit 0b2527a6 authored by Jean-Philippe Brucker's avatar Jean-Philippe Brucker Committed by Joerg Roedel

iommu/arm-smmu-v3: Use pci_ats_supported()

The new pci_ats_supported() function checks if a device supports ATS and
is allowed to use it.
Signed-off-by: default avatarJean-Philippe Brucker <jean-philippe@linaro.org>
Acked-by: default avatarWill Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20200520152201.3309416-4-jean-philippe@linaro.orgSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 7a441b21
...@@ -2652,26 +2652,20 @@ static void arm_smmu_install_ste_for_dev(struct arm_smmu_master *master) ...@@ -2652,26 +2652,20 @@ static void arm_smmu_install_ste_for_dev(struct arm_smmu_master *master)
} }
} }
#ifdef CONFIG_PCI_ATS
static bool arm_smmu_ats_supported(struct arm_smmu_master *master) static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
{ {
struct pci_dev *pdev; struct device *dev = master->dev;
struct arm_smmu_device *smmu = master->smmu; struct arm_smmu_device *smmu = master->smmu;
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(master->dev); struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
if (!(smmu->features & ARM_SMMU_FEAT_ATS) || !dev_is_pci(master->dev) || if (!(smmu->features & ARM_SMMU_FEAT_ATS))
!(fwspec->flags & IOMMU_FWSPEC_PCI_RC_ATS) || pci_ats_disabled())
return false; return false;
pdev = to_pci_dev(master->dev); if (!(fwspec->flags & IOMMU_FWSPEC_PCI_RC_ATS))
return !pdev->untrusted && pdev->ats_cap; return false;
}
#else return dev_is_pci(dev) && pci_ats_supported(to_pci_dev(dev));
static bool arm_smmu_ats_supported(struct arm_smmu_master *master)
{
return false;
} }
#endif
static void arm_smmu_enable_ats(struct arm_smmu_master *master) static void arm_smmu_enable_ats(struct arm_smmu_master *master)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment