The patch titled nVidia quirk to make AER PCI-E extended capability visible has been added to the -mm tree. Its filename is nvidia-quirk-to-make-aer-pci-e-extended-capability-visible.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: nVidia quirk to make AER PCI-E extended capability visible From: Brice Goglin <brice@xxxxxxxx> The nVidia CK804 PCI-E chipset supports the AER extended capability but sometimes fails to link it (with some BIOS or after a warm reboot). It makes the AER cap invisible to pci_find_ext_capability(). The patch adds a quirk to set the missing bit that controls the linking of the capability. By the way, it removes the corresponding code in the myri10ge driver. Signed-off-by: Brice Goglin <brice@xxxxxxxx> Signed-off-by: Loic Prylli <loic@xxxxxxxx> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Greg KH <greg@xxxxxxxxx> Cc: Jeff Garzik <jeff@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/pci/quirks.c | 19 +++++++++++++++++++ include/linux/pci_ids.h | 1 + 2 files changed, 20 insertions(+) diff -puN drivers/pci/quirks.c~nvidia-quirk-to-make-aer-pci-e-extended-capability-visible drivers/pci/quirks.c --- a/drivers/pci/quirks.c~nvidia-quirk-to-make-aer-pci-e-extended-capability-visible +++ a/drivers/pci/quirks.c @@ -1542,6 +1542,25 @@ static void __devinit quirk_p64h2_1k_io( } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1460, quirk_p64h2_1k_io); +/* Under some circumstances, AER is not linked with extended capabilities. + * Force it to be linked by setting the corresponding control bit in the + * config space. + */ +static void __devinit quirk_nvidia_ck804_pcie_aer_ext_cap(struct pci_dev *dev) +{ + uint8_t b; + if (pci_read_config_byte(dev, 0xf41, &b) == 0) { + if (!(b & 0x20)) { + pci_write_config_byte(dev, 0xf41, b | 0x20); + printk(KERN_INFO + "PCI: Linking AER extended capability on %s\n", + pci_name(dev)); + } + } +} +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE, + quirk_nvidia_ck804_pcie_aer_ext_cap); + EXPORT_SYMBOL(pcie_mch_quirk); #ifdef CONFIG_HOTPLUG EXPORT_SYMBOL(pci_fixup_device); diff -puN include/linux/pci_ids.h~nvidia-quirk-to-make-aer-pci-e-extended-capability-visible include/linux/pci_ids.h --- a/include/linux/pci_ids.h~nvidia-quirk-to-make-aer-pci-e-extended-capability-visible +++ a/include/linux/pci_ids.h @@ -1021,6 +1021,7 @@ #define PCI_DEVICE_ID_NVIDIA_NVENET_8 0x0056 #define PCI_DEVICE_ID_NVIDIA_NVENET_9 0x0057 #define PCI_DEVICE_ID_NVIDIA_CK804_AUDIO 0x0059 +#define PCI_DEVICE_ID_NVIDIA_CK804_PCIE 0x005d #define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064 #define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065 #define PCI_DEVICE_ID_NVIDIA_NVENET_2 0x0066 _ Patches currently in -mm which might be from brice@xxxxxxxx are git-netdev-all.patch nvidia-quirk-to-make-aer-pci-e-extended-capability-visible.patch add-__iowrite64_copy.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html