|
@@ -943,33 +943,35 @@ static int i7300_get_devices(struct mem_ctl_info *mci)
|
|
|
|
|
|
/* Attempt to 'get' the MCH register we want */
|
|
/* Attempt to 'get' the MCH register we want */
|
|
pdev = NULL;
|
|
pdev = NULL;
|
|
- while (!pvt->pci_dev_16_1_fsb_addr_map ||
|
|
|
|
- !pvt->pci_dev_16_2_fsb_err_regs) {
|
|
|
|
- pdev = pci_get_device(PCI_VENDOR_ID_INTEL,
|
|
|
|
- PCI_DEVICE_ID_INTEL_I7300_MCH_ERR, pdev);
|
|
|
|
- if (!pdev) {
|
|
|
|
- /* End of list, leave */
|
|
|
|
- i7300_printk(KERN_ERR,
|
|
|
|
- "'system address,Process Bus' "
|
|
|
|
- "device not found:"
|
|
|
|
- "vendor 0x%x device 0x%x ERR funcs "
|
|
|
|
- "(broken BIOS?)\n",
|
|
|
|
- PCI_VENDOR_ID_INTEL,
|
|
|
|
- PCI_DEVICE_ID_INTEL_I7300_MCH_ERR);
|
|
|
|
- goto error;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ while ((pdev = pci_get_device(PCI_VENDOR_ID_INTEL,
|
|
|
|
+ PCI_DEVICE_ID_INTEL_I7300_MCH_ERR,
|
|
|
|
+ pdev))) {
|
|
/* Store device 16 funcs 1 and 2 */
|
|
/* Store device 16 funcs 1 and 2 */
|
|
switch (PCI_FUNC(pdev->devfn)) {
|
|
switch (PCI_FUNC(pdev->devfn)) {
|
|
case 1:
|
|
case 1:
|
|
- pvt->pci_dev_16_1_fsb_addr_map = pdev;
|
|
|
|
|
|
+ if (!pvt->pci_dev_16_1_fsb_addr_map)
|
|
|
|
+ pvt->pci_dev_16_1_fsb_addr_map =
|
|
|
|
+ pci_dev_get(pdev);
|
|
break;
|
|
break;
|
|
case 2:
|
|
case 2:
|
|
- pvt->pci_dev_16_2_fsb_err_regs = pdev;
|
|
|
|
|
|
+ if (!pvt->pci_dev_16_2_fsb_err_regs)
|
|
|
|
+ pvt->pci_dev_16_2_fsb_err_regs =
|
|
|
|
+ pci_dev_get(pdev);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (!pvt->pci_dev_16_1_fsb_addr_map ||
|
|
|
|
+ !pvt->pci_dev_16_2_fsb_err_regs) {
|
|
|
|
+ /* At least one device was not found */
|
|
|
|
+ i7300_printk(KERN_ERR,
|
|
|
|
+ "'system address,Process Bus' device not found:"
|
|
|
|
+ "vendor 0x%x device 0x%x ERR funcs (broken BIOS?)\n",
|
|
|
|
+ PCI_VENDOR_ID_INTEL,
|
|
|
|
+ PCI_DEVICE_ID_INTEL_I7300_MCH_ERR);
|
|
|
|
+ goto error;
|
|
|
|
+ }
|
|
|
|
+
|
|
edac_dbg(1, "System Address, processor bus- PCI Bus ID: %s %x:%x\n",
|
|
edac_dbg(1, "System Address, processor bus- PCI Bus ID: %s %x:%x\n",
|
|
pci_name(pvt->pci_dev_16_0_fsb_ctlr),
|
|
pci_name(pvt->pci_dev_16_0_fsb_ctlr),
|
|
pvt->pci_dev_16_0_fsb_ctlr->vendor,
|
|
pvt->pci_dev_16_0_fsb_ctlr->vendor,
|