Lines Matching refs:pdn

61 	struct pci_dn *pdn = pci_get_pdn(pdev);  in pseries_pcibios_bus_add_device()  local
68 pdn->device_id = pdev->device; in pseries_pcibios_bus_add_device()
69 pdn->vendor_id = pdev->vendor; in pseries_pcibios_bus_add_device()
70 pdn->class_code = pdev->class; in pseries_pcibios_bus_add_device()
76 pdn->last_allow_rc = 0; in pseries_pcibios_bus_add_device()
78 pdn->pe_number = physfn_pdn->pe_num_map[pdn->vf_index]; in pseries_pcibios_bus_add_device()
79 edev = pdn_to_eeh_dev(pdn); in pseries_pcibios_bus_add_device()
85 eeh_add_device_early(pdn); in pseries_pcibios_bus_add_device()
87 edev->pe_config_addr = (pdn->busno << 16) | (pdn->devfn << 8); in pseries_pcibios_bus_add_device()
168 static int pseries_eeh_cap_start(struct pci_dn *pdn) in pseries_eeh_cap_start() argument
172 if (!pdn) in pseries_eeh_cap_start()
175 rtas_read_config(pdn, PCI_STATUS, 2, &status); in pseries_eeh_cap_start()
183 static int pseries_eeh_find_cap(struct pci_dn *pdn, int cap) in pseries_eeh_find_cap() argument
185 int pos = pseries_eeh_cap_start(pdn); in pseries_eeh_find_cap()
193 rtas_read_config(pdn, pos, 1, &pos); in pseries_eeh_find_cap()
197 rtas_read_config(pdn, pos + PCI_CAP_LIST_ID, 1, &id); in pseries_eeh_find_cap()
208 static int pseries_eeh_find_ecap(struct pci_dn *pdn, int cap) in pseries_eeh_find_ecap() argument
210 struct eeh_dev *edev = pdn_to_eeh_dev(pdn); in pseries_eeh_find_ecap()
217 if (rtas_read_config(pdn, pos, 4, &header) != PCIBIOS_SUCCESSFUL) in pseries_eeh_find_ecap()
230 if (rtas_read_config(pdn, pos, 4, &header) != PCIBIOS_SUCCESSFUL) in pseries_eeh_find_ecap()
246 static void *pseries_eeh_probe(struct pci_dn *pdn, void *data) in pseries_eeh_probe() argument
255 edev = pdn_to_eeh_dev(pdn); in pseries_eeh_probe()
260 if (!pdn->vendor_id || !pdn->device_id || !pdn->class_code) in pseries_eeh_probe()
264 if ((pdn->class_code >> 8) == PCI_CLASS_BRIDGE_ISA) in pseries_eeh_probe()
272 edev->class_code = pdn->class_code; in pseries_eeh_probe()
273 edev->pcix_cap = pseries_eeh_find_cap(pdn, PCI_CAP_ID_PCIX); in pseries_eeh_probe()
274 edev->pcie_cap = pseries_eeh_find_cap(pdn, PCI_CAP_ID_EXP); in pseries_eeh_probe()
275 edev->aer_cap = pseries_eeh_find_ecap(pdn, PCI_EXT_CAP_ID_ERR); in pseries_eeh_probe()
280 rtas_read_config(pdn, edev->pcie_cap + PCI_EXP_FLAGS, in pseries_eeh_probe()
292 pe.phb = pdn->phb; in pseries_eeh_probe()
293 pe.config_addr = (pdn->busno << 16) | (pdn->devfn << 8); in pseries_eeh_probe()
315 __func__, pdn->busno, PCI_SLOT(pdn->devfn), in pseries_eeh_probe()
316 PCI_FUNC(pdn->devfn), pe.phb->global_number, in pseries_eeh_probe()
318 } else if (pdn->parent && pdn_to_eeh_dev(pdn->parent) && in pseries_eeh_probe()
319 (pdn_to_eeh_dev(pdn->parent))->pe) { in pseries_eeh_probe()
323 edev->pe_config_addr = pdn_to_eeh_dev(pdn->parent)->pe_config_addr; in pseries_eeh_probe()
710 static int pseries_eeh_read_config(struct pci_dn *pdn, int where, int size, u32 *val) in pseries_eeh_read_config() argument
712 return rtas_read_config(pdn, where, size, val); in pseries_eeh_read_config()
724 static int pseries_eeh_write_config(struct pci_dn *pdn, int where, int size, u32 val) in pseries_eeh_write_config() argument
726 return rtas_write_config(pdn, where, size, val); in pseries_eeh_write_config()
729 static int pseries_eeh_restore_config(struct pci_dn *pdn) in pseries_eeh_restore_config() argument
731 struct eeh_dev *edev = pdn_to_eeh_dev(pdn); in pseries_eeh_restore_config()
742 ret = eeh_restore_vf_config(pdn); in pseries_eeh_restore_config()
754 int pseries_send_allow_unfreeze(struct pci_dn *pdn, in pseries_send_allow_unfreeze() argument
761 addr = rtas_config_addr(pdn->busno, pdn->devfn, 0); in pseries_send_allow_unfreeze()
762 buid = pdn->phb->buid; in pseries_send_allow_unfreeze()
774 pdn->phb->global_number, addr, rc); in pseries_send_allow_unfreeze()
780 struct pci_dn *pdn, *tmp, *parent, *physfn_pdn; in pseries_call_allow_unfreeze() local
790 pdn = eeh_dev_to_pdn(edev); in pseries_call_allow_unfreeze()
791 parent = pdn->parent; in pseries_call_allow_unfreeze()
794 cpu_to_be16(pdn->pe_num_map[vf_index]); in pseries_call_allow_unfreeze()
795 rc = pseries_send_allow_unfreeze(pdn, vf_pe_array, in pseries_call_allow_unfreeze()
797 pdn->last_allow_rc = rc; in pseries_call_allow_unfreeze()
799 list_for_each_entry_safe(pdn, tmp, in pseries_call_allow_unfreeze()
806 if (pdn->busno != bus || in pseries_call_allow_unfreeze()
807 pdn->devfn != devfn) in pseries_call_allow_unfreeze()
809 pdn->last_allow_rc = rc; in pseries_call_allow_unfreeze()
813 pdn = pci_get_pdn(edev->pdev); in pseries_call_allow_unfreeze()
814 vf_pe_array[0] = cpu_to_be16(pdn->pe_number); in pseries_call_allow_unfreeze()
818 pdn->last_allow_rc = rc; in pseries_call_allow_unfreeze()
826 static int pseries_notify_resume(struct pci_dn *pdn) in pseries_notify_resume() argument
828 struct eeh_dev *edev = pdn_to_eeh_dev(pdn); in pseries_notify_resume()