.. | .. |
---|
4130 | 4130 | /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c49 */ |
---|
4131 | 4131 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9230, |
---|
4132 | 4132 | quirk_dma_func1_alias); |
---|
| 4133 | +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9235, |
---|
| 4134 | + quirk_dma_func1_alias); |
---|
4133 | 4135 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TTI, 0x0642, |
---|
4134 | 4136 | quirk_dma_func1_alias); |
---|
4135 | 4137 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TTI, 0x0645, |
---|
.. | .. |
---|
4804 | 4806 | PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); |
---|
4805 | 4807 | } |
---|
4806 | 4808 | |
---|
| 4809 | +/* |
---|
| 4810 | + * Wangxun 10G/1G NICs have no ACS capability, and on multi-function |
---|
| 4811 | + * devices, peer-to-peer transactions are not be used between the functions. |
---|
| 4812 | + * So add an ACS quirk for below devices to isolate functions. |
---|
| 4813 | + * SFxxx 1G NICs(em). |
---|
| 4814 | + * RP1000/RP2000 10G NICs(sp). |
---|
| 4815 | + */ |
---|
| 4816 | +static int pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags) |
---|
| 4817 | +{ |
---|
| 4818 | + switch (dev->device) { |
---|
| 4819 | + case 0x0100 ... 0x010F: |
---|
| 4820 | + case 0x1001: |
---|
| 4821 | + case 0x2001: |
---|
| 4822 | + return pci_acs_ctrl_enabled(acs_flags, |
---|
| 4823 | + PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF); |
---|
| 4824 | + } |
---|
| 4825 | + |
---|
| 4826 | + return false; |
---|
| 4827 | +} |
---|
| 4828 | + |
---|
4807 | 4829 | static const struct pci_dev_acs_enabled { |
---|
4808 | 4830 | u16 vendor; |
---|
4809 | 4831 | u16 device; |
---|
.. | .. |
---|
4949 | 4971 | { PCI_VENDOR_ID_NXP, 0x8d9b, pci_quirk_nxp_rp_acs }, |
---|
4950 | 4972 | /* Zhaoxin Root/Downstream Ports */ |
---|
4951 | 4973 | { PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs }, |
---|
| 4974 | + /* Wangxun nics */ |
---|
| 4975 | + { PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs }, |
---|
4952 | 4976 | { 0 } |
---|
4953 | 4977 | }; |
---|
4954 | 4978 | |
---|
.. | .. |
---|
5309 | 5333 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1487, quirk_no_flr); |
---|
5310 | 5334 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x148c, quirk_no_flr); |
---|
5311 | 5335 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x149c, quirk_no_flr); |
---|
| 5336 | +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x7901, quirk_no_flr); |
---|
5312 | 5337 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_no_flr); |
---|
5313 | 5338 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_no_flr); |
---|
5314 | 5339 | |
---|