Lines Matching defs:sbridge_dev

360 struct sbridge_dev {
391 struct sbridge_dev *sbridge_dev;
740 static struct sbridge_dev *get_sbridge_dev(int seg, u8 bus, enum domain dom,
742 struct sbridge_dev *prev)
744 struct sbridge_dev *sbridge_dev;
752 struct sbridge_dev, list);
755 sbridge_dev = list_entry(prev ? prev->list.next
756 : sbridge_edac_list.next, struct sbridge_dev, list);
758 list_for_each_entry_from(sbridge_dev, &sbridge_edac_list, list) {
759 if ((sbridge_dev->seg == seg) && (sbridge_dev->bus == bus) &&
760 (dom == SOCK || dom == sbridge_dev->dom))
761 return sbridge_dev;
767 static struct sbridge_dev *alloc_sbridge_dev(int seg, u8 bus, enum domain dom,
770 struct sbridge_dev *sbridge_dev;
772 sbridge_dev = kzalloc(sizeof(*sbridge_dev), GFP_KERNEL);
773 if (!sbridge_dev)
776 sbridge_dev->pdev = kcalloc(table->n_devs_per_imc,
777 sizeof(*sbridge_dev->pdev),
779 if (!sbridge_dev->pdev) {
780 kfree(sbridge_dev);
784 sbridge_dev->seg = seg;
785 sbridge_dev->bus = bus;
786 sbridge_dev->dom = dom;
787 sbridge_dev->n_devs = table->n_devs_per_imc;
788 list_add_tail(&sbridge_dev->list, &sbridge_edac_list);
790 return sbridge_dev;
793 static void free_sbridge_dev(struct sbridge_dev *sbridge_dev)
795 list_del(&sbridge_dev->list);
796 kfree(sbridge_dev->pdev);
797 kfree(sbridge_dev);
1581 pvt->sbridge_dev->source_id = SOURCE_ID_KNL(reg);
1583 pvt->sbridge_dev->source_id = SOURCE_ID(reg);
1641 pvt->sbridge_dev->source_id,
1642 pvt->sbridge_dev->dom, i);
1663 pvt->sbridge_dev->mc, pvt->sbridge_dev->dom, i, j,
1679 pvt->sbridge_dev->source_id, pvt->sbridge_dev->dom, i, j);
1694 pvt->sbridge_dev->node_id = pvt->info.get_node_id(pvt);
1696 pvt->sbridge_dev->mc,
1697 pvt->sbridge_dev->node_id,
1698 pvt->sbridge_dev->source_id);
1929 struct sbridge_dev *sbridge_dev;
1931 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list) {
1932 if (sbridge_dev->node_id == node_id && sbridge_dev->dom == ha)
1933 return sbridge_dev->mci;
2111 pvt->sbridge_dev->mc,
2430 static void sbridge_put_devices(struct sbridge_dev *sbridge_dev)
2435 for (i = 0; i < sbridge_dev->n_devs; i++) {
2436 struct pci_dev *pdev = sbridge_dev->pdev[i];
2448 struct sbridge_dev *sbridge_dev, *tmp;
2450 list_for_each_entry_safe(sbridge_dev, tmp, &sbridge_edac_list, list) {
2451 sbridge_put_devices(sbridge_dev);
2452 free_sbridge_dev(sbridge_dev);
2462 struct sbridge_dev *sbridge_dev = NULL;
2500 sbridge_dev = get_sbridge_dev(seg, bus, dev_descr->dom,
2501 multi_bus, sbridge_dev);
2502 if (!sbridge_dev) {
2514 sbridge_dev = alloc_sbridge_dev(seg, bus, dev_descr->dom, table);
2515 if (!sbridge_dev) {
2522 if (sbridge_dev->pdev[sbridge_dev->i_devs]) {
2530 sbridge_dev->pdev[sbridge_dev->i_devs++] = pdev;
2616 struct sbridge_dev *sbridge_dev)
2623 for (i = 0; i < sbridge_dev->n_devs; i++) {
2624 pdev = sbridge_dev->pdev[i];
2666 sbridge_dev->bus,
2690 struct sbridge_dev *sbridge_dev)
2697 for (i = 0; i < sbridge_dev->n_devs; i++) {
2698 pdev = sbridge_dev->pdev[i];
2749 sbridge_dev->bus,
2776 struct sbridge_dev *sbridge_dev)
2790 for (i = 0; i < sbridge_dev->n_devs; i++) {
2791 pdev = sbridge_dev->pdev[i];
2840 sbridge_dev->bus,
2861 struct sbridge_dev *sbridge_dev)
2875 for (i = 0; i < sbridge_dev->n_devs; i++) {
2876 pdev = sbridge_dev->pdev[i];
2921 sbridge_dev->bus,
2942 struct sbridge_dev *sbridge_dev)
2951 for (i = 0; i < sbridge_dev->n_devs; i++) {
2952 pdev = sbridge_dev->pdev[i];
3324 static void sbridge_unregister_mci(struct sbridge_dev *sbridge_dev)
3326 struct mem_ctl_info *mci = sbridge_dev->mci;
3329 edac_dbg(0, "MC: dev = %p\n", &sbridge_dev->pdev[0]->dev);
3336 mci, &sbridge_dev->pdev[0]->dev);
3344 sbridge_dev->mci = NULL;
3347 static int sbridge_register_mci(struct sbridge_dev *sbridge_dev, enum type type)
3352 struct pci_dev *pdev = sbridge_dev->pdev[0];
3363 mci = edac_mc_alloc(sbridge_dev->mc, ARRAY_SIZE(layers), layers,
3375 /* Associate sbridge_dev and mci for future usage */
3376 pvt->sbridge_dev = sbridge_dev;
3377 sbridge_dev->mci = mci;
3407 rc = ibridge_mci_bind_devs(mci, sbridge_dev);
3412 pvt->sbridge_dev->source_id, pvt->sbridge_dev->dom);
3432 rc = sbridge_mci_bind_devs(mci, sbridge_dev);
3437 pvt->sbridge_dev->source_id, pvt->sbridge_dev->dom);
3457 rc = haswell_mci_bind_devs(mci, sbridge_dev);
3462 pvt->sbridge_dev->source_id, pvt->sbridge_dev->dom);
3482 rc = broadwell_mci_bind_devs(mci, sbridge_dev);
3487 pvt->sbridge_dev->source_id, pvt->sbridge_dev->dom);
3506 rc = knl_mci_bind_devs(mci, sbridge_dev);
3511 pvt->sbridge_dev->source_id, pvt->sbridge_dev->dom);
3544 sbridge_dev->mci = NULL;
3572 struct sbridge_dev *sbridge_dev;
3585 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list) {
3589 sbridge_dev->mc = mc++;
3590 rc = sbridge_register_mci(sbridge_dev, ptable->type);
3600 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list)
3601 sbridge_unregister_mci(sbridge_dev);
3614 struct sbridge_dev *sbridge_dev;
3618 list_for_each_entry(sbridge_dev, &sbridge_edac_list, list)
3619 sbridge_unregister_mci(sbridge_dev);