if (pci_info->edac_dev) { edac_pci_del_device(pci_info->edac_dev->dev); edac_pci_free_ctl_info(pci_info->edac_dev); } if (pci_info->exit) pci_info->exit(pci_info); pci_dev_put(pci_info->dev); } /* PCI Device ID talbe for general EDAC device */ static const struct pci_device_id amd8111_edac_dev_tbl[] = { { PCI_VEND_DEV(AMD, 8111_LPC), .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .class = 0, .class_mask = 0, .driver_data = LPC_BRIDGE, }, { 0, } /* table is NULL-terminated */ }; MODULE_DEVICE_TABLE(pci, amd8111_edac_dev_tbl); static struct pci_driver amd8111_edac_dev_driver = { .name = "AMD8111_EDAC_DEV", .probe = amd8111_dev_probe,
return; if (dev_info->edac_dev) { edac_pci_del_device(dev_info->edac_dev->dev); edac_pci_free_ctl_info(dev_info->edac_dev); } if (amd8131_chipset.exit) amd8131_chipset.exit(dev_info); pci_dev_put(dev_info->dev); } static const struct pci_device_id amd8131_edac_pci_tbl[] = { { PCI_VEND_DEV(AMD, 8131_BRIDGE), .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .class = 0, .class_mask = 0, .driver_data = 0, }, { 0, } }; MODULE_DEVICE_TABLE(pci, amd8131_edac_pci_tbl); static struct pci_driver amd8131_edac_driver = { .name = AMD8131_EDAC_MOD_STR, .probe = amd8131_probe,
struct mem_ctl_info *mci; debugf0("%s()\n", __func__); if (i3000_pci) edac_pci_release_generic_ctl(i3000_pci); if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL) return; edac_mc_free(mci); } static const struct pci_device_id i3000_pci_tbl[] __devinitdata = { { PCI_VEND_DEV(INTEL, 3000_HB), PCI_ANY_ID, PCI_ANY_ID, 0, 0, I3000}, { 0, } /* 0 terminated list. */ }; MODULE_DEVICE_TABLE(pci, i3000_pci_tbl); static struct pci_driver i3000_driver = { .name = EDAC_MOD_STR, .probe = i3000_init_one, .remove = __devexit_p(i3000_remove_one), .id_table = i3000_pci_tbl, };