Many places use PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF as the flags, consolidate this into a little helper. Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> --- drivers/pci/quirks.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index d7f4ee634263c2..8a9ab76dd81494 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4634,6 +4634,12 @@ static int pci_acs_ctrl_enabled(u16 acs_ctrl_req, u16 acs_ctrl_ena) return 0; } +static int pci_acs_ctrl_isolated(u16 acs_flags) +{ + return pci_acs_ctrl_enabled(acs_flags, + PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); +} + /* * AMD has indicated that the devices below do not support peer-to-peer * in any system where they are found in the southbridge with an AMD @@ -4717,8 +4723,7 @@ static int pci_quirk_cavium_acs(struct pci_dev *dev, u16 acs_flags) * hardware implements and enables equivalent ACS functionality for * these flags. */ - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags) @@ -4728,8 +4733,7 @@ static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags) * transactions with others, allowing masking out these bits as if they * were unimplemented in the ACS capability. */ - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } /* @@ -4752,8 +4756,7 @@ static int pci_quirk_zhaoxin_pcie_ports_acs(struct pci_dev *dev, u16 acs_flags) case 0x0710 ... 0x071e: case 0x0721: case 0x0723 ... 0x0752: - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } return false; @@ -4814,8 +4817,7 @@ static int pci_quirk_intel_pch_acs(struct pci_dev *dev, u16 acs_flags) return -ENOTTY; if (dev->dev_flags & PCI_DEV_FLAGS_ACS_ENABLED_QUIRK) - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); return pci_acs_ctrl_enabled(acs_flags, 0); } @@ -4832,8 +4834,7 @@ static int pci_quirk_intel_pch_acs(struct pci_dev *dev, u16 acs_flags) */ static int pci_quirk_qcom_rp_acs(struct pci_dev *dev, u16 acs_flags) { - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } /* @@ -4844,8 +4845,7 @@ static int pci_quirk_qcom_rp_acs(struct pci_dev *dev, u16 acs_flags) */ static int pci_quirk_nxp_rp_acs(struct pci_dev *dev, u16 acs_flags) { - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } static int pci_quirk_al_acs(struct pci_dev *dev, u16 acs_flags) @@ -4975,8 +4975,7 @@ static int pci_quirk_rciep_acs(struct pci_dev *dev, u16 acs_flags) if (pci_pcie_type(dev) != PCI_EXP_TYPE_RC_END) return -ENOTTY; - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } static int pci_quirk_brcm_acs(struct pci_dev *dev, u16 acs_flags) @@ -4987,8 +4986,7 @@ static int pci_quirk_brcm_acs(struct pci_dev *dev, u16 acs_flags) * Allow each Root Port to be in a separate IOMMU group by masking * SV/RR/CR/UF bits. */ - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } static int pci_quirk_loongson_acs(struct pci_dev *dev, u16 acs_flags) @@ -4999,8 +4997,7 @@ static int pci_quirk_loongson_acs(struct pci_dev *dev, u16 acs_flags) * Allow each Root Port to be in a separate IOMMU group by masking * SV/RR/CR/UF bits. */ - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } /* @@ -5019,8 +5016,7 @@ static int pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags) case 0x1001: case 0x2001: /* SP */ case 0x5010: case 0x5025: case 0x5040: /* AML */ case 0x5110: case 0x5125: case 0x5140: /* AML */ - return pci_acs_ctrl_enabled(acs_flags, - PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); + return pci_acs_ctrl_isolated(acs_flags); } return false; -- 2.43.0