Lines Matching refs:sbridge_dev

304 struct sbridge_dev {  struct
321 struct sbridge_dev *sbridge_dev; argument
603 static struct sbridge_dev *get_sbridge_dev(u8 bus) in get_sbridge_dev()
605 struct sbridge_dev *sbridge_dev; in get_sbridge_dev() local
607 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list) { in get_sbridge_dev()
608 if (sbridge_dev->bus == bus) in get_sbridge_dev()
609 return sbridge_dev; in get_sbridge_dev()
615 static struct sbridge_dev *alloc_sbridge_dev(u8 bus, in alloc_sbridge_dev()
618 struct sbridge_dev *sbridge_dev; in alloc_sbridge_dev() local
620 sbridge_dev = kzalloc(sizeof(*sbridge_dev), GFP_KERNEL); in alloc_sbridge_dev()
621 if (!sbridge_dev) in alloc_sbridge_dev()
624 sbridge_dev->pdev = kzalloc(sizeof(*sbridge_dev->pdev) * table->n_devs, in alloc_sbridge_dev()
626 if (!sbridge_dev->pdev) { in alloc_sbridge_dev()
627 kfree(sbridge_dev); in alloc_sbridge_dev()
631 sbridge_dev->bus = bus; in alloc_sbridge_dev()
632 sbridge_dev->n_devs = table->n_devs; in alloc_sbridge_dev()
633 list_add_tail(&sbridge_dev->list, &sbridge_edac_list); in alloc_sbridge_dev()
635 return sbridge_dev; in alloc_sbridge_dev()
638 static void free_sbridge_dev(struct sbridge_dev *sbridge_dev) in free_sbridge_dev() argument
640 list_del(&sbridge_dev->list); in free_sbridge_dev()
641 kfree(sbridge_dev->pdev); in free_sbridge_dev()
642 kfree(sbridge_dev); in free_sbridge_dev()
864 pvt->sbridge_dev->source_id = SOURCE_ID(reg); in get_dimm_config()
866 pvt->sbridge_dev->node_id = pvt->info.get_node_id(pvt); in get_dimm_config()
868 pvt->sbridge_dev->mc, in get_dimm_config()
869 pvt->sbridge_dev->node_id, in get_dimm_config()
870 pvt->sbridge_dev->source_id); in get_dimm_config()
932 pvt->sbridge_dev->mc, i, j, in get_dimm_config()
953 pvt->sbridge_dev->source_id, i, j); in get_dimm_config()
1123 struct sbridge_dev *sbridge_dev; in get_mci_for_node_id() local
1125 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list) { in get_mci_for_node_id()
1126 if (sbridge_dev->node_id == node_id) in get_mci_for_node_id()
1127 return sbridge_dev->mci; in get_mci_for_node_id()
1211 pvt->sbridge_dev->mc, in get_memory_error_data()
1458 static void sbridge_put_devices(struct sbridge_dev *sbridge_dev) in sbridge_put_devices() argument
1463 for (i = 0; i < sbridge_dev->n_devs; i++) { in sbridge_put_devices()
1464 struct pci_dev *pdev = sbridge_dev->pdev[i]; in sbridge_put_devices()
1476 struct sbridge_dev *sbridge_dev, *tmp; in sbridge_put_all_devices() local
1478 list_for_each_entry_safe(sbridge_dev, tmp, &sbridge_edac_list, list) { in sbridge_put_all_devices()
1479 sbridge_put_devices(sbridge_dev); in sbridge_put_all_devices()
1480 free_sbridge_dev(sbridge_dev); in sbridge_put_all_devices()
1489 struct sbridge_dev *sbridge_dev; in sbridge_get_onedevice() local
1523 sbridge_dev = get_sbridge_dev(bus); in sbridge_get_onedevice()
1524 if (!sbridge_dev) { in sbridge_get_onedevice()
1525 sbridge_dev = alloc_sbridge_dev(bus, table); in sbridge_get_onedevice()
1526 if (!sbridge_dev) { in sbridge_get_onedevice()
1533 if (sbridge_dev->pdev[devno]) { in sbridge_get_onedevice()
1541 sbridge_dev->pdev[devno] = pdev; in sbridge_get_onedevice()
1604 struct sbridge_dev *sbridge_dev) in sbridge_mci_bind_devs() argument
1611 for (i = 0; i < sbridge_dev->n_devs; i++) { in sbridge_mci_bind_devs()
1612 pdev = sbridge_dev->pdev[i]; in sbridge_mci_bind_devs()
1654 sbridge_dev->bus, in sbridge_mci_bind_devs()
1678 struct sbridge_dev *sbridge_dev) in ibridge_mci_bind_devs() argument
1692 for (i = 0; i < sbridge_dev->n_devs; i++) { in ibridge_mci_bind_devs()
1693 pdev = sbridge_dev->pdev[i]; in ibridge_mci_bind_devs()
1755 sbridge_dev->bus, in ibridge_mci_bind_devs()
1784 struct sbridge_dev *sbridge_dev) in haswell_mci_bind_devs() argument
1805 for (i = 0; i < sbridge_dev->n_devs; i++) { in haswell_mci_bind_devs()
1806 pdev = sbridge_dev->pdev[i]; in haswell_mci_bind_devs()
1862 sbridge_dev->bus, in haswell_mci_bind_devs()
1884 struct sbridge_dev *sbridge_dev) in broadwell_mci_bind_devs() argument
1897 for (i = 0; i < sbridge_dev->n_devs; i++) { in broadwell_mci_bind_devs()
1898 pdev = sbridge_dev->pdev[i]; in broadwell_mci_bind_devs()
1938 sbridge_dev->bus, in broadwell_mci_bind_devs()
2239 static void sbridge_unregister_mci(struct sbridge_dev *sbridge_dev) in sbridge_unregister_mci() argument
2241 struct mem_ctl_info *mci = sbridge_dev->mci; in sbridge_unregister_mci()
2245 edac_dbg(0, "MC: dev = %p\n", &sbridge_dev->pdev[0]->dev); in sbridge_unregister_mci()
2254 mci, &sbridge_dev->pdev[0]->dev); in sbridge_unregister_mci()
2262 sbridge_dev->mci = NULL; in sbridge_unregister_mci()
2265 static int sbridge_register_mci(struct sbridge_dev *sbridge_dev, enum type type) in sbridge_register_mci() argument
2270 struct pci_dev *pdev = sbridge_dev->pdev[0]; in sbridge_register_mci()
2274 rc = check_if_ecc_is_active(sbridge_dev->bus, type); in sbridge_register_mci()
2285 mci = edac_mc_alloc(sbridge_dev->mc, ARRAY_SIZE(layers), layers, in sbridge_register_mci()
2298 pvt->sbridge_dev = sbridge_dev; in sbridge_register_mci()
2299 sbridge_dev->mci = mci; in sbridge_register_mci()
2329 rc = ibridge_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2348 rc = sbridge_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2367 rc = haswell_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2386 rc = broadwell_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2411 sbridge_dev->mci = NULL; in sbridge_register_mci()
2427 struct sbridge_dev *sbridge_dev; in sbridge_probe() local
2467 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list) { in sbridge_probe()
2471 sbridge_dev->mc = mc++; in sbridge_probe()
2472 rc = sbridge_register_mci(sbridge_dev, type); in sbridge_probe()
2483 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list) in sbridge_probe()
2484 sbridge_unregister_mci(sbridge_dev); in sbridge_probe()
2498 struct sbridge_dev *sbridge_dev; in sbridge_remove() local
2517 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list) in sbridge_remove()
2518 sbridge_unregister_mci(sbridge_dev); in sbridge_remove()