quirks.c (e98bdb3059cbf2b1cd4261e126b08429f64466c3) | quirks.c (4091fb95b5f8dea37568d1a94c8227244bade891) |
---|---|
1/* 2 * This file contains work-arounds for many known PCI hardware 3 * bugs. Devices present only on certain architectures (host 4 * bridges et cetera) should be handled in arch-specific code. 5 * 6 * Note: any quirks for hotpluggable devices must _NOT_ be declared __init. 7 * 8 * Copyright (c) 1999 Martin Mares <mj@ucw.cz> --- 1620 unchanged lines hidden (view full) --- 1629 1630static void quirk_pcie_mch(struct pci_dev *pdev) 1631{ 1632 pdev->no_msi = 1; 1633} 1634DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, quirk_pcie_mch); 1635DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7320_MCH, quirk_pcie_mch); 1636DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_pcie_mch); | 1/* 2 * This file contains work-arounds for many known PCI hardware 3 * bugs. Devices present only on certain architectures (host 4 * bridges et cetera) should be handled in arch-specific code. 5 * 6 * Note: any quirks for hotpluggable devices must _NOT_ be declared __init. 7 * 8 * Copyright (c) 1999 Martin Mares <mj@ucw.cz> --- 1620 unchanged lines hidden (view full) --- 1629 1630static void quirk_pcie_mch(struct pci_dev *pdev) 1631{ 1632 pdev->no_msi = 1; 1633} 1634DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, quirk_pcie_mch); 1635DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7320_MCH, quirk_pcie_mch); 1636DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_pcie_mch); |
1637DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_HUAWEI, 0x1610, quirk_pcie_mch); |
|
1637 1638 1639/* 1640 * It's possible for the MSI to get corrupted if shpc and acpi 1641 * are used together on certain PXH-based systems. 1642 */ 1643static void quirk_pcie_pxh(struct pci_dev *dev) 1644{ --- 589 unchanged lines hidden (view full) --- 2234 pcie_set_readrq(dev, 2048); 2235 } 2236} 2237 2238DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_BROADCOM, 2239 PCI_DEVICE_ID_TIGON3_5719, 2240 quirk_brcm_5719_limit_mrrs); 2241 | 1638 1639 1640/* 1641 * It's possible for the MSI to get corrupted if shpc and acpi 1642 * are used together on certain PXH-based systems. 1643 */ 1644static void quirk_pcie_pxh(struct pci_dev *dev) 1645{ --- 589 unchanged lines hidden (view full) --- 2235 pcie_set_readrq(dev, 2048); 2236 } 2237} 2238 2239DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_BROADCOM, 2240 PCI_DEVICE_ID_TIGON3_5719, 2241 quirk_brcm_5719_limit_mrrs); 2242 |
2243#ifdef CONFIG_PCIE_IPROC_PLATFORM 2244static void quirk_paxc_bridge(struct pci_dev *pdev) 2245{ 2246 /* The PCI config space is shared with the PAXC root port and the first 2247 * Ethernet device. So, we need to workaround this by telling the PCI 2248 * code that the bridge is not an Ethernet device. 2249 */ 2250 if (pdev->hdr_type == PCI_HEADER_TYPE_BRIDGE) 2251 pdev->class = PCI_CLASS_BRIDGE_PCI << 8; 2252 2253 /* MPSS is not being set properly (as it is currently 0). This is 2254 * because that area of the PCI config space is hard coded to zero, and 2255 * is not modifiable by firmware. Set this to 2 (e.g., 512 byte MPS) 2256 * so that the MPS can be set to the real max value. 2257 */ 2258 pdev->pcie_mpss = 2; 2259} 2260DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16cd, quirk_paxc_bridge); 2261DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16f0, quirk_paxc_bridge); 2262#endif 2263 |
|
2242/* Originally in EDAC sources for i82875P: 2243 * Intel tells BIOS developers to hide device 6 which 2244 * configures the overflow device access containing 2245 * the DRBs - this is where we expose device 6. 2246 * http://www.x86-secret.com/articles/tweak/pat/patsecrets-2.htm 2247 */ 2248static void quirk_unhide_mch_dev6(struct pci_dev *dev) 2249{ --- 858 unchanged lines hidden (view full) --- 3108/* 3109 * PCI devices which are on Intel chips can skip the 10ms delay 3110 * before entering D3 mode. 3111 */ 3112static void quirk_remove_d3_delay(struct pci_dev *dev) 3113{ 3114 dev->d3_delay = 0; 3115} | 2264/* Originally in EDAC sources for i82875P: 2265 * Intel tells BIOS developers to hide device 6 which 2266 * configures the overflow device access containing 2267 * the DRBs - this is where we expose device 6. 2268 * http://www.x86-secret.com/articles/tweak/pat/patsecrets-2.htm 2269 */ 2270static void quirk_unhide_mch_dev6(struct pci_dev *dev) 2271{ --- 858 unchanged lines hidden (view full) --- 3130/* 3131 * PCI devices which are on Intel chips can skip the 10ms delay 3132 * before entering D3 mode. 3133 */ 3134static void quirk_remove_d3_delay(struct pci_dev *dev) 3135{ 3136 dev->d3_delay = 0; 3137} |
3116DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0c00, quirk_remove_d3_delay); | 3138/* C600 Series devices do not need 10ms d3_delay */ |
3117DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0412, quirk_remove_d3_delay); | 3139DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0412, quirk_remove_d3_delay); |
3140DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0c00, quirk_remove_d3_delay); |
|
3118DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0c0c, quirk_remove_d3_delay); | 3141DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0c0c, quirk_remove_d3_delay); |
3119DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c31, quirk_remove_d3_delay); 3120DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c3a, quirk_remove_d3_delay); 3121DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c3d, quirk_remove_d3_delay); 3122DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c2d, quirk_remove_d3_delay); 3123DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c20, quirk_remove_d3_delay); | 3142/* Lynxpoint-H PCH devices do not need 10ms d3_delay */ 3143DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c02, quirk_remove_d3_delay); |
3124DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c18, quirk_remove_d3_delay); 3125DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c1c, quirk_remove_d3_delay); | 3144DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c18, quirk_remove_d3_delay); 3145DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c1c, quirk_remove_d3_delay); |
3146DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c20, quirk_remove_d3_delay); 3147DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c22, quirk_remove_d3_delay); |
|
3126DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c26, quirk_remove_d3_delay); | 3148DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c26, quirk_remove_d3_delay); |
3149DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c2d, quirk_remove_d3_delay); 3150DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c31, quirk_remove_d3_delay); 3151DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c3a, quirk_remove_d3_delay); 3152DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c3d, quirk_remove_d3_delay); |
|
3127DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c4e, quirk_remove_d3_delay); | 3153DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c4e, quirk_remove_d3_delay); |
3128DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c02, quirk_remove_d3_delay); 3129DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x8c22, quirk_remove_d3_delay); | |
3130/* Intel Cherrytrail devices do not need 10ms d3_delay */ 3131DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2280, quirk_remove_d3_delay); | 3154/* Intel Cherrytrail devices do not need 10ms d3_delay */ 3155DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2280, quirk_remove_d3_delay); |
3156DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2298, quirk_remove_d3_delay); 3157DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x229c, quirk_remove_d3_delay); |
|
3132DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b0, quirk_remove_d3_delay); | 3158DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b0, quirk_remove_d3_delay); |
3159DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b5, quirk_remove_d3_delay); 3160DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b7, quirk_remove_d3_delay); |
|
3133DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b8, quirk_remove_d3_delay); 3134DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22d8, quirk_remove_d3_delay); 3135DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22dc, quirk_remove_d3_delay); | 3161DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b8, quirk_remove_d3_delay); 3162DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22d8, quirk_remove_d3_delay); 3163DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22dc, quirk_remove_d3_delay); |
3136DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b5, quirk_remove_d3_delay); 3137DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b7, quirk_remove_d3_delay); 3138DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2298, quirk_remove_d3_delay); 3139DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x229c, quirk_remove_d3_delay); | |
3140 3141/* 3142 * Some devices may pass our check in pci_intx_mask_supported() if 3143 * PCI_COMMAND_INTX_DISABLE works though they actually do not properly 3144 * support this feature. 3145 */ 3146static void quirk_broken_intx_masking(struct pci_dev *dev) 3147{ --- 453 unchanged lines hidden (view full) --- 3601 } 3602 3603 return 0; 3604} 3605 3606fs_initcall_sync(pci_apply_final_quirks); 3607 3608/* | 3164 3165/* 3166 * Some devices may pass our check in pci_intx_mask_supported() if 3167 * PCI_COMMAND_INTX_DISABLE works though they actually do not properly 3168 * support this feature. 3169 */ 3170static void quirk_broken_intx_masking(struct pci_dev *dev) 3171{ --- 453 unchanged lines hidden (view full) --- 3625 } 3626 3627 return 0; 3628} 3629 3630fs_initcall_sync(pci_apply_final_quirks); 3631 3632/* |
3609 * Followings are device-specific reset methods which can be used to | 3633 * Following are device-specific reset methods which can be used to |
3610 * reset a single function if other methods (e.g. FLR, PM D0->D3) are 3611 * not available. 3612 */ 3613static int reset_intel_82599_sfp_virtfn(struct pci_dev *dev, int probe) 3614{ 3615 /* 3616 * http://www.intel.com/content/dam/doc/datasheet/82599-10-gbe-controller-datasheet.pdf 3617 * --- 513 unchanged lines hidden (view full) --- 4131 4132 if (!pci_quirk_intel_pch_acs_match(dev)) 4133 return -ENOTTY; 4134 4135 return acs_flags & ~flags ? 0 : 1; 4136} 4137 4138/* | 3634 * reset a single function if other methods (e.g. FLR, PM D0->D3) are 3635 * not available. 3636 */ 3637static int reset_intel_82599_sfp_virtfn(struct pci_dev *dev, int probe) 3638{ 3639 /* 3640 * http://www.intel.com/content/dam/doc/datasheet/82599-10-gbe-controller-datasheet.pdf 3641 * --- 513 unchanged lines hidden (view full) --- 4155 4156 if (!pci_quirk_intel_pch_acs_match(dev)) 4157 return -ENOTTY; 4158 4159 return acs_flags & ~flags ? 0 : 1; 4160} 4161 4162/* |
4163 * These QCOM root ports do provide ACS-like features to disable peer 4164 * transactions and validate bus numbers in requests, but do not provide an 4165 * actual PCIe ACS capability. Hardware supports source validation but it 4166 * will report the issue as Completer Abort instead of ACS Violation. 4167 * Hardware doesn't support peer-to-peer and each root port is a root 4168 * complex with unique segment numbers. It is not possible for one root 4169 * port to pass traffic to another root port. All PCIe transactions are 4170 * terminated inside the root port. 4171 */ 4172static int pci_quirk_qcom_rp_acs(struct pci_dev *dev, u16 acs_flags) 4173{ 4174 u16 flags = (PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_SV); 4175 int ret = acs_flags & ~flags ? 0 : 1; 4176 4177 dev_info(&dev->dev, "Using QCOM ACS Quirk (%d)\n", ret); 4178 4179 return ret; 4180} 4181 4182/* |
|
4139 * Sunrise Point PCH root ports implement ACS, but unfortunately as shown in 4140 * the datasheet (Intel 100 Series Chipset Family PCH Datasheet, Vol. 2, 4141 * 12.1.46, 12.1.47)[1] this chipset uses dwords for the ACS capability and 4142 * control registers whereas the PCIe spec packs them into words (Rev 3.0, 4143 * 7.16 ACS Extended Capability). The bit definitions are correct, but the 4144 * control register is at offset 8 instead of 6 and we should probably use 4145 * dword accesses to them. This applies to the following PCI Device IDs, as 4146 * found in volume 1 of the datasheet[2]: 4147 * 4148 * 0xa110-0xa11f Sunrise Point-H PCI Express Root Port #{0-16} 4149 * 0xa167-0xa16a Sunrise Point-H PCI Express Root Port #{17-20} 4150 * 4151 * N.B. This doesn't fix what lspci shows. 4152 * | 4183 * Sunrise Point PCH root ports implement ACS, but unfortunately as shown in 4184 * the datasheet (Intel 100 Series Chipset Family PCH Datasheet, Vol. 2, 4185 * 12.1.46, 12.1.47)[1] this chipset uses dwords for the ACS capability and 4186 * control registers whereas the PCIe spec packs them into words (Rev 3.0, 4187 * 7.16 ACS Extended Capability). The bit definitions are correct, but the 4188 * control register is at offset 8 instead of 6 and we should probably use 4189 * dword accesses to them. This applies to the following PCI Device IDs, as 4190 * found in volume 1 of the datasheet[2]: 4191 * 4192 * 0xa110-0xa11f Sunrise Point-H PCI Express Root Port #{0-16} 4193 * 0xa167-0xa16a Sunrise Point-H PCI Express Root Port #{17-20} 4194 * 4195 * N.B. This doesn't fix what lspci shows. 4196 * |
4197 * The 100 series chipset specification update includes this as errata #23[3]. 4198 * 4199 * The 200 series chipset (Union Point) has the same bug according to the 4200 * specification update (Intel 200 Series Chipset Family Platform Controller 4201 * Hub, Specification Update, January 2017, Revision 001, Document# 335194-001, 4202 * Errata 22)[4]. Per the datasheet[5], root port PCI Device IDs for this 4203 * chipset include: 4204 * 4205 * 0xa290-0xa29f PCI Express Root port #{0-16} 4206 * 0xa2e7-0xa2ee PCI Express Root port #{17-24} 4207 * |
|
4153 * [1] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-2.html 4154 * [2] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-1.html | 4208 * [1] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-2.html 4209 * [2] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-1.html |
4210 * [3] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-spec-update.html 4211 * [4] http://www.intel.com/content/www/us/en/chipsets/200-series-chipset-pch-spec-update.html 4212 * [5] http://www.intel.com/content/www/us/en/chipsets/200-series-chipset-pch-datasheet-vol-1.html |
|
4155 */ 4156static bool pci_quirk_intel_spt_pch_acs_match(struct pci_dev *dev) 4157{ | 4213 */ 4214static bool pci_quirk_intel_spt_pch_acs_match(struct pci_dev *dev) 4215{ |
4158 return pci_is_pcie(dev) && 4159 pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT && 4160 ((dev->device & ~0xf) == 0xa110 || 4161 (dev->device >= 0xa167 && dev->device <= 0xa16a)); | 4216 if (!pci_is_pcie(dev) || pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT) 4217 return false; 4218 4219 switch (dev->device) { 4220 case 0xa110 ... 0xa11f: case 0xa167 ... 0xa16a: /* Sunrise Point */ 4221 case 0xa290 ... 0xa29f: case 0xa2e7 ... 0xa2ee: /* Union Point */ 4222 return true; 4223 } 4224 4225 return false; |
4162} 4163 4164#define INTEL_SPT_ACS_CTRL (PCI_ACS_CAP + 4) 4165 4166static int pci_quirk_intel_spt_pch_acs(struct pci_dev *dev, u16 acs_flags) 4167{ 4168 int pos; 4169 u32 cap, ctrl; --- 96 unchanged lines hidden (view full) --- 4266 /* 82571 (Quads omitted due to non-ACS switch) */ 4267 { PCI_VENDOR_ID_INTEL, 0x105E, pci_quirk_mf_endpoint_acs }, 4268 { PCI_VENDOR_ID_INTEL, 0x105F, pci_quirk_mf_endpoint_acs }, 4269 { PCI_VENDOR_ID_INTEL, 0x1060, pci_quirk_mf_endpoint_acs }, 4270 { PCI_VENDOR_ID_INTEL, 0x10D9, pci_quirk_mf_endpoint_acs }, 4271 /* I219 */ 4272 { PCI_VENDOR_ID_INTEL, 0x15b7, pci_quirk_mf_endpoint_acs }, 4273 { PCI_VENDOR_ID_INTEL, 0x15b8, pci_quirk_mf_endpoint_acs }, | 4226} 4227 4228#define INTEL_SPT_ACS_CTRL (PCI_ACS_CAP + 4) 4229 4230static int pci_quirk_intel_spt_pch_acs(struct pci_dev *dev, u16 acs_flags) 4231{ 4232 int pos; 4233 u32 cap, ctrl; --- 96 unchanged lines hidden (view full) --- 4330 /* 82571 (Quads omitted due to non-ACS switch) */ 4331 { PCI_VENDOR_ID_INTEL, 0x105E, pci_quirk_mf_endpoint_acs }, 4332 { PCI_VENDOR_ID_INTEL, 0x105F, pci_quirk_mf_endpoint_acs }, 4333 { PCI_VENDOR_ID_INTEL, 0x1060, pci_quirk_mf_endpoint_acs }, 4334 { PCI_VENDOR_ID_INTEL, 0x10D9, pci_quirk_mf_endpoint_acs }, 4335 /* I219 */ 4336 { PCI_VENDOR_ID_INTEL, 0x15b7, pci_quirk_mf_endpoint_acs }, 4337 { PCI_VENDOR_ID_INTEL, 0x15b8, pci_quirk_mf_endpoint_acs }, |
4338 /* QCOM QDF2xxx root ports */ 4339 { 0x17cb, 0x400, pci_quirk_qcom_rp_acs }, 4340 { 0x17cb, 0x401, pci_quirk_qcom_rp_acs }, |
|
4274 /* Intel PCH root ports */ 4275 { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs }, 4276 { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_spt_pch_acs }, 4277 { 0x19a2, 0x710, pci_quirk_mf_endpoint_acs }, /* Emulex BE3-R */ 4278 { 0x10df, 0x720, pci_quirk_mf_endpoint_acs }, /* Emulex Skyhawk-R */ 4279 /* Cavium ThunderX */ 4280 { PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs }, 4281 { 0 } --- 287 unchanged lines hidden --- | 4341 /* Intel PCH root ports */ 4342 { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs }, 4343 { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_spt_pch_acs }, 4344 { 0x19a2, 0x710, pci_quirk_mf_endpoint_acs }, /* Emulex BE3-R */ 4345 { 0x10df, 0x720, pci_quirk_mf_endpoint_acs }, /* Emulex Skyhawk-R */ 4346 /* Cavium ThunderX */ 4347 { PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs }, 4348 { 0 } --- 287 unchanged lines hidden --- |