|
@@ -493,3 +493,20 @@ static void __devinit pci_siemens_interrupt_controller(struct pci_dev *dev)
|
|
|
}
|
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SIEMENS, 0x0015,
|
|
|
pci_siemens_interrupt_controller);
|
|
|
+
|
|
|
+/*
|
|
|
+ * Regular PCI devices have 256 bytes, but AMD Family 10h Opteron ext config
|
|
|
+ * have 4096 bytes. Even if the device is capable, that doesn't mean we can
|
|
|
+ * access it. Maybe we don't have a way to generate extended config space
|
|
|
+ * accesses. So check it
|
|
|
+ */
|
|
|
+static void fam10h_pci_cfg_space_size(struct pci_dev *dev)
|
|
|
+{
|
|
|
+ dev->cfg_size = pci_cfg_space_size_ext(dev, 0);
|
|
|
+}
|
|
|
+
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1200, fam10h_pci_cfg_space_size);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1201, fam10h_pci_cfg_space_size);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1202, fam10h_pci_cfg_space_size);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1203, fam10h_pci_cfg_space_size);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1204, fam10h_pci_cfg_space_size);
|