Commit c94df621 authored by Bjorn Helgaas's avatar Bjorn Helgaas

Merge branch 'pci/virtualization'

- Add ACS quirk for more Zhaoxin Root Ports (LeoLiuoc)

* pci/virtualization:
  PCI: Add ACS quirk for more Zhaoxin Root Ports
parents d6f5bcc2 e367e3c7
...@@ -4709,17 +4709,21 @@ static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags) ...@@ -4709,17 +4709,21 @@ static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags)
* But the implementation could block peer-to-peer transactions between them * But the implementation could block peer-to-peer transactions between them
* and provide ACS-like functionality. * and provide ACS-like functionality.
*/ */
static int pci_quirk_zhaoxin_pcie_ports_acs(struct pci_dev *dev, u16 acs_flags) static int pci_quirk_zhaoxin_pcie_ports_acs(struct pci_dev *dev, u16 acs_flags)
{ {
if (!pci_is_pcie(dev) || if (!pci_is_pcie(dev) ||
((pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT) && ((pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT) &&
(pci_pcie_type(dev) != PCI_EXP_TYPE_DOWNSTREAM))) (pci_pcie_type(dev) != PCI_EXP_TYPE_DOWNSTREAM)))
return -ENOTTY; return -ENOTTY;
/*
* Future Zhaoxin Root Ports and Switch Downstream Ports will
* implement ACS capability in accordance with the PCIe Spec.
*/
switch (dev->device) { switch (dev->device) {
case 0x0710 ... 0x071e: case 0x0710 ... 0x071e:
case 0x0721: case 0x0721:
case 0x0723 ... 0x0732: case 0x0723 ... 0x0752:
return pci_acs_ctrl_enabled(acs_flags, return pci_acs_ctrl_enabled(acs_flags,
PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
} }
......
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