@@ -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
47544759static 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 */
48634865static 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 */
48754876static 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
48814881static 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
50125011static 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
50245022static 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