Lines Matching refs:pdn
47 struct pci_dn *pdn; in pci_bus_to_pdn() local
66 pdn = dn ? PCI_DN(dn) : NULL; in pci_bus_to_pdn()
68 return pdn; in pci_bus_to_pdn()
75 struct pci_dn *parent, *pdn; in pci_get_pdn_by_devfn() local
90 pdn = dn ? PCI_DN(dn) : NULL; in pci_get_pdn_by_devfn()
91 if (pdn) in pci_get_pdn_by_devfn()
92 return pdn; in pci_get_pdn_by_devfn()
99 list_for_each_entry(pdn, &parent->child_list, list) { in pci_get_pdn_by_devfn()
100 if (pdn->busno == bus->number && in pci_get_pdn_by_devfn()
101 pdn->devfn == devfn) in pci_get_pdn_by_devfn()
102 return pdn; in pci_get_pdn_by_devfn()
111 struct pci_dn *parent, *pdn; in pci_get_pdn() local
119 pdn = dn ? PCI_DN(dn) : NULL; in pci_get_pdn()
120 if (pdn) in pci_get_pdn()
121 return pdn; in pci_get_pdn()
131 list_for_each_entry(pdn, &parent->child_list, list) { in pci_get_pdn()
132 if (pdn->busno == pdev->bus->number && in pci_get_pdn()
133 pdn->devfn == pdev->devfn) in pci_get_pdn()
134 return pdn; in pci_get_pdn()
145 struct pci_dn *pdn; in add_one_dev_pci_data() local
151 pdn = kzalloc(sizeof(*pdn), GFP_KERNEL); in add_one_dev_pci_data()
152 if (!pdn) in add_one_dev_pci_data()
155 pdn->phb = parent->phb; in add_one_dev_pci_data()
156 pdn->parent = parent; in add_one_dev_pci_data()
157 pdn->busno = busno; in add_one_dev_pci_data()
158 pdn->devfn = devfn; in add_one_dev_pci_data()
159 pdn->vf_index = vf_index; in add_one_dev_pci_data()
160 pdn->pe_number = IODA_INVALID_PE; in add_one_dev_pci_data()
161 INIT_LIST_HEAD(&pdn->child_list); in add_one_dev_pci_data()
162 INIT_LIST_HEAD(&pdn->list); in add_one_dev_pci_data()
163 list_add_tail(&pdn->list, &parent->child_list); in add_one_dev_pci_data()
165 return pdn; in add_one_dev_pci_data()
172 struct pci_dn *parent, *pdn; in add_dev_pci_data() local
180 pdn = pci_get_pdn(pdev); in add_dev_pci_data()
181 if (!pdn || (pdn->flags & PCI_DN_FLAG_IOV_VF)) in add_dev_pci_data()
184 pdn->flags |= PCI_DN_FLAG_IOV_VF; in add_dev_pci_data()
192 pdn = add_one_dev_pci_data(parent, i, in add_dev_pci_data()
195 if (!pdn) { in add_dev_pci_data()
203 edev = eeh_dev_init(pdn); in add_dev_pci_data()
217 struct pci_dn *pdn, *tmp; in remove_dev_pci_data() local
226 pdn = pci_get_pdn(pdev); in remove_dev_pci_data()
227 pdn->pe_number = IODA_INVALID_PE; in remove_dev_pci_data()
236 pdn = pci_get_pdn(pdev); in remove_dev_pci_data()
237 if (!pdn || !(pdn->flags & PCI_DN_FLAG_IOV_VF)) in remove_dev_pci_data()
240 pdn->flags &= ~PCI_DN_FLAG_IOV_VF; in remove_dev_pci_data()
253 list_for_each_entry_safe(pdn, tmp, in remove_dev_pci_data()
255 if (pdn->busno != pci_iov_virtfn_bus(pdev, i) || in remove_dev_pci_data()
256 pdn->devfn != pci_iov_virtfn_devfn(pdev, i)) in remove_dev_pci_data()
261 edev = pdn_to_eeh_dev(pdn); in remove_dev_pci_data()
263 pdn->edev = NULL; in remove_dev_pci_data()
268 if (!list_empty(&pdn->list)) in remove_dev_pci_data()
269 list_del(&pdn->list); in remove_dev_pci_data()
271 kfree(pdn); in remove_dev_pci_data()
283 struct pci_dn *pdn; in pci_add_device_node_info() local
288 pdn = kzalloc(sizeof(*pdn), GFP_KERNEL); in pci_add_device_node_info()
289 if (pdn == NULL) in pci_add_device_node_info()
291 dn->data = pdn; in pci_add_device_node_info()
292 pdn->phb = hose; in pci_add_device_node_info()
293 pdn->pe_number = IODA_INVALID_PE; in pci_add_device_node_info()
299 pdn->busno = (addr >> 16) & 0xff; in pci_add_device_node_info()
300 pdn->devfn = (addr >> 8) & 0xff; in pci_add_device_node_info()
305 pdn->vendor_id = regs ? of_read_number(regs, 1) : 0; in pci_add_device_node_info()
307 pdn->device_id = regs ? of_read_number(regs, 1) : 0; in pci_add_device_node_info()
309 pdn->class_code = regs ? of_read_number(regs, 1) : 0; in pci_add_device_node_info()
312 pdn->pci_ext_config_space = (type && of_read_number(type, 1) == 1); in pci_add_device_node_info()
316 edev = eeh_dev_init(pdn); in pci_add_device_node_info()
318 kfree(pdn); in pci_add_device_node_info()
324 INIT_LIST_HEAD(&pdn->child_list); in pci_add_device_node_info()
325 INIT_LIST_HEAD(&pdn->list); in pci_add_device_node_info()
327 pdn->parent = parent ? PCI_DN(parent) : NULL; in pci_add_device_node_info()
328 if (pdn->parent) in pci_add_device_node_info()
329 list_add_tail(&pdn->list, &pdn->parent->child_list); in pci_add_device_node_info()
331 return pdn; in pci_add_device_node_info()
337 struct pci_dn *pdn = dn ? PCI_DN(dn) : NULL; in pci_remove_device_node_info() local
340 struct eeh_dev *edev = pdn_to_eeh_dev(pdn); in pci_remove_device_node_info()
343 edev->pdn = NULL; in pci_remove_device_node_info()
346 if (!pdn) in pci_remove_device_node_info()
349 WARN_ON(!list_empty(&pdn->child_list)); in pci_remove_device_node_info()
350 list_del(&pdn->list); in pci_remove_device_node_info()
357 kfree(pdn); in pci_remove_device_node_info()
425 struct pci_dn *pdn) in pci_dn_next_one() argument
427 struct list_head *next = pdn->child_list.next; in pci_dn_next_one()
429 if (next != &pdn->child_list) in pci_dn_next_one()
433 if (pdn == root) in pci_dn_next_one()
436 next = pdn->list.next; in pci_dn_next_one()
437 if (next != &pdn->parent->child_list) in pci_dn_next_one()
440 pdn = pdn->parent; in pci_dn_next_one()
450 struct pci_dn *pdn = root; in traverse_pci_dn() local
454 for (pdn = pci_dn_next_one(root, pdn); pdn; in traverse_pci_dn()
455 pdn = pci_dn_next_one(root, pdn)) { in traverse_pci_dn()
456 ret = fn(pdn, data); in traverse_pci_dn()
467 struct pci_dn *pdn; in add_pdn() local
469 pdn = pci_add_device_node_info(hose, dn); in add_pdn()
470 if (!pdn) in add_pdn()
487 struct pci_dn *pdn; in pci_devs_phb_init_dynamic() local
490 pdn = pci_add_device_node_info(phb, dn); in pci_devs_phb_init_dynamic()
491 if (pdn) { in pci_devs_phb_init_dynamic()
492 pdn->devfn = pdn->busno = -1; in pci_devs_phb_init_dynamic()
493 pdn->vendor_id = pdn->device_id = pdn->class_code = 0; in pci_devs_phb_init_dynamic()
494 pdn->phb = phb; in pci_devs_phb_init_dynamic()
495 phb->pci_data = pdn; in pci_devs_phb_init_dynamic()
526 struct pci_dn *pdn; in pci_dev_pdn_setup() local
532 pdn = pci_get_pdn(pdev); in pci_dev_pdn_setup()
533 pdev->dev.archdata.pci_data = pdn; in pci_dev_pdn_setup()