Skip to content

Commit 7d0eaad

Browse files
jgunthorpeschythanyaku
authored andcommitted
NVIDIA: SAUCE: PCI: Remove duplication in calling pci_acs_ctrl_enabled()
BugLink: https://bugs.launchpad.net/bugs/2116967 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@nvidia.com> Signed-off-by: Tushar Dave <tdave@nvidia.com> Acked-by: Nirmoy Das <nirmoyd@nvidia.com> Acked-by: Carol L Soto <csoto@nvidia.com> Acked-by: Noah Wager <noah.wager@canonical.com> Acked-by: Jacob Martin <jacob.martin@canonical.com> Signed-off--by: Brad Figg <bfigg@nvidia.com>
1 parent d07e29d commit 7d0eaad

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

drivers/pci/quirks.c

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4664,6 +4664,12 @@ static int pci_acs_ctrl_enabled(u16 acs_ctrl_req, u16 acs_ctrl_ena)
46644664
return 0;
46654665
}
46664666

4667+
static int pci_acs_ctrl_isolated(u16 acs_flags)
4668+
{
4669+
return pci_acs_ctrl_enabled(acs_flags,
4670+
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
4671+
}
4672+
46674673
/*
46684674
* AMD has indicated that the devices below do not support peer-to-peer
46694675
* in any system where they are found in the southbridge with an AMD
@@ -4747,8 +4753,7 @@ static int pci_quirk_cavium_acs(struct pci_dev *dev, u16 acs_flags)
47474753
* hardware implements and enables equivalent ACS functionality for
47484754
* these flags.
47494755
*/
4750-
return pci_acs_ctrl_enabled(acs_flags,
4751-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
4756+
return pci_acs_ctrl_isolated(acs_flags);
47524757
}
47534758

47544759
static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags)
@@ -4758,8 +4763,7 @@ static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags)
47584763
* transactions with others, allowing masking out these bits as if they
47594764
* were unimplemented in the ACS capability.
47604765
*/
4761-
return pci_acs_ctrl_enabled(acs_flags,
4762-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
4766+
return pci_acs_ctrl_isolated(acs_flags);
47634767
}
47644768

47654769
/*
@@ -4782,8 +4786,7 @@ static int pci_quirk_zhaoxin_pcie_ports_acs(struct pci_dev *dev, u16 acs_flags)
47824786
case 0x0710 ... 0x071e:
47834787
case 0x0721:
47844788
case 0x0723 ... 0x0752:
4785-
return pci_acs_ctrl_enabled(acs_flags,
4786-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
4789+
return pci_acs_ctrl_isolated(acs_flags);
47874790
}
47884791

47894792
return false;
@@ -4844,8 +4847,7 @@ static int pci_quirk_intel_pch_acs(struct pci_dev *dev, u16 acs_flags)
48444847
return -ENOTTY;
48454848

48464849
if (dev->dev_flags & PCI_DEV_FLAGS_ACS_ENABLED_QUIRK)
4847-
return pci_acs_ctrl_enabled(acs_flags,
4848-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
4850+
return pci_acs_ctrl_isolated(acs_flags);
48494851

48504852
return pci_acs_ctrl_enabled(acs_flags, 0);
48514853
}
@@ -4862,8 +4864,7 @@ static int pci_quirk_intel_pch_acs(struct pci_dev *dev, u16 acs_flags)
48624864
*/
48634865
static int pci_quirk_qcom_rp_acs(struct pci_dev *dev, u16 acs_flags)
48644866
{
4865-
return pci_acs_ctrl_enabled(acs_flags,
4866-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
4867+
return pci_acs_ctrl_isolated(acs_flags);
48674868
}
48684869

48694870
/*
@@ -4874,8 +4875,7 @@ static int pci_quirk_qcom_rp_acs(struct pci_dev *dev, u16 acs_flags)
48744875
*/
48754876
static int pci_quirk_nxp_rp_acs(struct pci_dev *dev, u16 acs_flags)
48764877
{
4877-
return pci_acs_ctrl_enabled(acs_flags,
4878-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
4878+
return pci_acs_ctrl_isolated(acs_flags);
48794879
}
48804880

48814881
static int pci_quirk_al_acs(struct pci_dev *dev, u16 acs_flags)
@@ -5005,8 +5005,7 @@ static int pci_quirk_rciep_acs(struct pci_dev *dev, u16 acs_flags)
50055005
if (pci_pcie_type(dev) != PCI_EXP_TYPE_RC_END)
50065006
return -ENOTTY;
50075007

5008-
return pci_acs_ctrl_enabled(acs_flags,
5009-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
5008+
return pci_acs_ctrl_isolated(acs_flags);
50105009
}
50115010

50125011
static int pci_quirk_brcm_acs(struct pci_dev *dev, u16 acs_flags)
@@ -5017,8 +5016,7 @@ static int pci_quirk_brcm_acs(struct pci_dev *dev, u16 acs_flags)
50175016
* Allow each Root Port to be in a separate IOMMU group by masking
50185017
* SV/RR/CR/UF bits.
50195018
*/
5020-
return pci_acs_ctrl_enabled(acs_flags,
5021-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
5019+
return pci_acs_ctrl_isolated(acs_flags);
50225020
}
50235021

50245022
static int pci_quirk_loongson_acs(struct pci_dev *dev, u16 acs_flags)
@@ -5049,8 +5047,7 @@ static int pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags)
50495047
case 0x1001: case 0x2001: /* SP */
50505048
case 0x5010: case 0x5025: case 0x5040: /* AML */
50515049
case 0x5110: case 0x5125: case 0x5140: /* AML */
5052-
return pci_acs_ctrl_enabled(acs_flags,
5053-
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
5050+
return pci_acs_ctrl_isolated(acs_flags);
50545051
}
50555052

50565053
return false;

0 commit comments

Comments
 (0)