/Linux-v4.19/arch/powerpc/platforms/powernv/ |
D | pci-ioda.c | 120 static inline bool pnv_pci_is_m64(struct pnv_phb *phb, struct resource *r) in pnv_pci_is_m64() argument 129 return (r->start >= phb->ioda.m64_base && in pnv_pci_is_m64() 130 r->start < (phb->ioda.m64_base + phb->ioda.m64_size)); in pnv_pci_is_m64() 140 static struct pnv_ioda_pe *pnv_ioda_init_pe(struct pnv_phb *phb, int pe_no) in pnv_ioda_init_pe() argument 144 phb->ioda.pe_array[pe_no].phb = phb; in pnv_ioda_init_pe() 145 phb->ioda.pe_array[pe_no].pe_number = pe_no; in pnv_ioda_init_pe() 152 rc = opal_pci_eeh_freeze_clear(phb->opal_id, pe_no, in pnv_ioda_init_pe() 156 __func__, rc, phb->hose->global_number, pe_no); in pnv_ioda_init_pe() 158 return &phb->ioda.pe_array[pe_no]; in pnv_ioda_init_pe() 161 static void pnv_ioda_reserve_pe(struct pnv_phb *phb, int pe_no) in pnv_ioda_reserve_pe() argument [all …]
|
D | eeh-powernv.c | 65 struct pnv_phb *phb; in pnv_eeh_init() local 83 phb = hose->private_data; in pnv_eeh_init() 85 if (phb->model == PNV_PHB_MODEL_P7IOC) in pnv_eeh_init() 88 if (phb->diag_data_size > max_diag_size) in pnv_eeh_init() 89 max_diag_size = phb->diag_data_size; in pnv_eeh_init() 98 if (phb->ioda.reserved_pe_idx != 0) in pnv_eeh_init() 171 struct pnv_phb *phb = hose->private_data; in pnv_eeh_dbgfs_set() local 173 out_be64(phb->regs + offset, val); in pnv_eeh_dbgfs_set() 180 struct pnv_phb *phb = hose->private_data; in pnv_eeh_dbgfs_get() local 182 *val = in_be64(phb->regs + offset); in pnv_eeh_dbgfs_get() [all …]
|
D | pci-cxl.c | 19 struct pnv_phb *phb = hose->private_data; in pnv_phb_to_cxl_mode() local 29 rc = opal_pci_set_phb_cxl_mode(phb->opal_id, mode, pe->pe_number); in pnv_phb_to_cxl_mode() 45 struct pnv_phb *phb = hose->private_data; in pnv_cxl_alloc_hwirqs() local 46 int hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, num); in pnv_cxl_alloc_hwirqs() 53 return phb->msi_base + hwirq; in pnv_cxl_alloc_hwirqs() 60 struct pnv_phb *phb = hose->private_data; in pnv_cxl_release_hwirqs() local 62 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq - phb->msi_base, num); in pnv_cxl_release_hwirqs() 70 struct pnv_phb *phb = hose->private_data; in pnv_cxl_release_hwirq_ranges() local 79 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges() 80 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, in pnv_cxl_release_hwirq_ranges() [all …]
|
D | pci.c | 167 struct pnv_phb *phb = hose->private_data; in pnv_setup_msi_irqs() local 174 if (WARN_ON(!phb) || !phb->msi_bmp.bitmap) in pnv_setup_msi_irqs() 177 if (pdev->no_64bit_msi && !phb->msi32_support) in pnv_setup_msi_irqs() 181 if (!entry->msi_attrib.is_64 && !phb->msi32_support) { in pnv_setup_msi_irqs() 186 hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, 1); in pnv_setup_msi_irqs() 192 virq = irq_create_mapping(NULL, phb->msi_base + hwirq); in pnv_setup_msi_irqs() 196 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1); in pnv_setup_msi_irqs() 199 rc = phb->msi_setup(phb, pdev, phb->msi_base + hwirq, in pnv_setup_msi_irqs() 204 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1); in pnv_setup_msi_irqs() 216 struct pnv_phb *phb = hose->private_data; in pnv_teardown_msi_irqs() local [all …]
|
D | npu-dma.c | 60 return pci_get_domain_bus_and_slot(pci_domain_nr(pdn->phb->bus), in get_pci_dev() 177 struct pnv_phb *phb; in get_gpu_pci_dev_and_pe() local 192 phb = hose->private_data; in get_gpu_pci_dev_and_pe() 193 pe = &phb->ioda.pe_array[pdn->pe_number]; in get_gpu_pci_dev_and_pe() 204 struct pnv_phb *phb = npe->phb; in pnv_npu_set_window() local 215 rc = opal_pci_map_pe_dma_window(phb->opal_id, in pnv_npu_set_window() 226 pnv_pci_ioda2_tce_invalidate_entire(phb, false); in pnv_npu_set_window() 229 pnv_pci_link_table_and_group(phb->hose->node, num, in pnv_npu_set_window() 237 struct pnv_phb *phb = npe->phb; in pnv_npu_unset_window() local 242 rc = opal_pci_map_pe_dma_window(phb->opal_id, npe->pe_number, in pnv_npu_unset_window() [all …]
|
D | pci.h | 45 struct pnv_phb *phb; member 114 int (*msi_setup)(struct pnv_phb *phb, struct pci_dev *dev, 117 void (*dma_dev_setup)(struct pnv_phb *phb, struct pci_dev *pdev); 119 int (*init_m64)(struct pnv_phb *phb); 123 int (*get_pe_state)(struct pnv_phb *phb, int pe_no); 124 void (*freeze_pe)(struct pnv_phb *phb, int pe_no); 125 int (*unfreeze_pe)(struct pnv_phb *phb, int pe_no, int opt); 221 extern void pnv_set_msi_irq_chip(struct pnv_phb *phb, unsigned int virq); 236 extern void pnv_pci_ioda2_tce_invalidate_entire(struct pnv_phb *phb, bool rm); 243 extern int pnv_npu2_init(struct pnv_phb *phb);
|
/Linux-v4.19/drivers/misc/cxl/ |
D | vphb.c | 45 struct pci_controller *phb; in cxl_pci_enable_device_hook() local 49 phb = pci_bus_to_host(dev->bus); in cxl_pci_enable_device_hook() 50 afu = (struct cxl_afu *)phb->private_data; in cxl_pci_enable_device_hook() 104 struct pci_controller *phb = bus ? pci_bus_to_host(bus) : NULL; in pci_bus_to_afu() local 106 return phb ? phb->private_data : NULL; in pci_bus_to_afu() 228 struct pci_controller *phb; in cxl_pci_vphb_add() local 254 phb = pcibios_alloc_controller(vphb_dn); in cxl_pci_vphb_add() 255 if (!phb) in cxl_pci_vphb_add() 259 phb->parent = parent; in cxl_pci_vphb_add() 262 phb->ops = &cxl_pcie_pci_ops; in cxl_pci_vphb_add() [all …]
|
/Linux-v4.19/arch/powerpc/platforms/pseries/ |
D | pci_dlpar.c | 39 struct pci_controller *phb; in init_phb_dynamic() local 43 phb = pcibios_alloc_controller(dn); in init_phb_dynamic() 44 if (!phb) in init_phb_dynamic() 46 rtas_setup_phb(phb); in init_phb_dynamic() 47 pci_process_bridge_OF_ranges(phb, dn, 0); in init_phb_dynamic() 48 phb->controller_ops = pseries_pci_controller_ops; in init_phb_dynamic() 50 pci_devs_phb_init_dynamic(phb); in init_phb_dynamic() 53 eeh_dev_phb_init_dynamic(phb); in init_phb_dynamic() 58 pcibios_scan_phb(phb); in init_phb_dynamic() 59 pcibios_finish_adding_to_bus(phb->bus); in init_phb_dynamic() [all …]
|
D | eeh_pseries.c | 292 pe.phb = pdn->phb; in pseries_eeh_probe() 316 PCI_FUNC(pdn->devfn), pe.phb->global_number, in pseries_eeh_probe() 373 config_addr, BUID_HI(pe->phb->buid), in pseries_eeh_set_option() 374 BUID_LO(pe->phb->buid), option); in pseries_eeh_set_option() 404 pe->config_addr, BUID_HI(pe->phb->buid), in pseries_eeh_get_pe_addr() 405 BUID_LO(pe->phb->buid), 1); in pseries_eeh_get_pe_addr() 411 pe->config_addr, BUID_HI(pe->phb->buid), in pseries_eeh_get_pe_addr() 412 BUID_LO(pe->phb->buid), 0); in pseries_eeh_get_pe_addr() 415 __func__, pe->phb->global_number, pe->config_addr); in pseries_eeh_get_pe_addr() 424 pe->config_addr, BUID_HI(pe->phb->buid), in pseries_eeh_get_pe_addr() [all …]
|
D | iommu.c | 500 static void iommu_table_setparms(struct pci_controller *phb, in iommu_table_setparms() argument 508 node = phb->dn; in iommu_table_setparms() 523 tbl->it_busno = phb->bus->number; in iommu_table_setparms() 527 tbl->it_offset = phb->dma_window_base_cur >> tbl->it_page_shift; in iommu_table_setparms() 530 if (phb->dma_window_base_cur + phb->dma_window_size > 0x80000000ul) { in iommu_table_setparms() 535 phb->dma_window_base_cur += phb->dma_window_size; in iommu_table_setparms() 538 tbl->it_size = phb->dma_window_size >> tbl->it_page_shift; in iommu_table_setparms() 550 static void iommu_table_setparms_lpar(struct pci_controller *phb, in iommu_table_setparms_lpar() argument 560 tbl->it_busno = phb->bus->number; in iommu_table_setparms_lpar() 623 pci->phb->dma_window_size = 0x80000000ul; /* To be divided */ in pci_dma_bus_setup_pSeries() [all …]
|
/Linux-v4.19/arch/powerpc/kernel/ |
D | of_platform.c | 42 struct pci_controller *phb; in of_pci_phb_probe() local 51 phb = pcibios_alloc_controller(dev->dev.of_node); in of_pci_phb_probe() 52 if (!phb) in of_pci_phb_probe() 56 phb->parent = &dev->dev; in of_pci_phb_probe() 59 if (ppc_md.pci_setup_phb(phb)) { in of_pci_phb_probe() 60 pcibios_free_controller(phb); in of_pci_phb_probe() 65 pci_process_bridge_OF_ranges(phb, dev->dev.of_node, 0); in of_pci_phb_probe() 68 pci_devs_phb_init_dynamic(phb); in of_pci_phb_probe() 71 eeh_dev_phb_init_dynamic(phb); in of_pci_phb_probe() 78 pcibios_scan_phb(phb); in of_pci_phb_probe() [all …]
|
D | pci-hotplug.c | 46 if (!pdn || !pdn->phb || !pdn->phb->bus) in pci_find_bus_by_node() 49 return find_bus_among_children(pdn->phb->bus, dn); in pci_find_bus_by_node() 61 struct pci_controller *phb = pci_bus_to_host(dev->bus); in pcibios_release_device() local 65 if (phb->controller_ops.release_device) in pcibios_release_device() 66 phb->controller_ops.release_device(dev); in pcibios_release_device() 109 struct pci_controller *phb; in pci_hp_add_devices() local 114 phb = pci_bus_to_host(bus); in pci_hp_add_devices() 117 if (phb->controller_ops.probe_mode) in pci_hp_add_devices() 118 mode = phb->controller_ops.probe_mode(bus); in pci_hp_add_devices()
|
D | rtas_pci.c | 75 buid = pdn->phb->buid; in rtas_read_config() 126 buid = pdn->phb->buid; in rtas_write_config() 212 unsigned long get_phb_buid(struct device_node *phb) in get_phb_buid() argument 218 if (of_address_to_resource(phb, 0, &r)) in get_phb_buid() 224 struct pci_controller *phb) in phb_set_bus_ranges() argument 234 phb->first_busno = be32_to_cpu(bus_range[0]); in phb_set_bus_ranges() 235 phb->last_busno = be32_to_cpu(bus_range[1]); in phb_set_bus_ranges() 240 int rtas_setup_phb(struct pci_controller *phb) in rtas_setup_phb() argument 242 struct device_node *dev = phb->dn; in rtas_setup_phb() 247 if (phb_set_bus_ranges(dev, phb)) in rtas_setup_phb() [all …]
|
D | msi.c | 18 struct pci_controller *phb = pci_bus_to_host(dev->bus); in arch_setup_msi_irqs() local 20 if (!phb->controller_ops.setup_msi_irqs || in arch_setup_msi_irqs() 21 !phb->controller_ops.teardown_msi_irqs) { in arch_setup_msi_irqs() 30 return phb->controller_ops.setup_msi_irqs(dev, nvec, type); in arch_setup_msi_irqs() 35 struct pci_controller *phb = pci_bus_to_host(dev->bus); in arch_teardown_msi_irqs() local 37 phb->controller_ops.teardown_msi_irqs(dev); in arch_teardown_msi_irqs()
|
D | eeh_pe.c | 59 static struct eeh_pe *eeh_pe_alloc(struct pci_controller *phb, int type) in eeh_pe_alloc() argument 76 pe->phb = phb; in eeh_pe_alloc() 93 int eeh_phb_pe_create(struct pci_controller *phb) in eeh_phb_pe_create() argument 98 pe = eeh_pe_alloc(phb, EEH_PE_PHB); in eeh_phb_pe_create() 107 pr_debug("EEH: Add PE for PHB#%x\n", phb->global_number); in eeh_phb_pe_create() 120 struct eeh_pe *eeh_phb_pe_get(struct pci_controller *phb) in eeh_phb_pe_get() argument 130 if ((pe->type & EEH_PE_PHB) && pe->phb == phb) in eeh_phb_pe_get() 279 struct eeh_pe *eeh_pe_get(struct pci_controller *phb, in eeh_pe_get() argument 282 struct eeh_pe *root = eeh_phb_pe_get(phb); in eeh_pe_get() 346 __func__, config_addr, pdn->phb->global_number); in eeh_add_to_parent_pe() [all …]
|
D | io-workarounds.c | 38 struct pci_controller *phb = bus->phb; in iowa_pci_find() local 41 vstart = (unsigned long)phb->io_base_virt; in iowa_pci_find() 42 vend = vstart + phb->pci_io_size - 1; in iowa_pci_find() 49 res = &phb->mem_resources[j]; in iowa_pci_find() 186 void iowa_register_bus(struct pci_controller *phb, struct ppc_pci_io *ops, in iowa_register_bus() argument 190 struct device_node *np = phb->dn; in iowa_register_bus() 201 bus->phb = phb; in iowa_register_bus()
|
D | pci-common.c | 119 struct pci_controller *phb; in pcibios_alloc_controller() local 121 phb = zalloc_maybe_bootmem(sizeof(struct pci_controller), GFP_KERNEL); in pcibios_alloc_controller() 122 if (phb == NULL) in pcibios_alloc_controller() 125 phb->global_number = get_phb_number(dev); in pcibios_alloc_controller() 126 list_add_tail(&phb->list_node, &hose_list); in pcibios_alloc_controller() 128 phb->dn = dev; in pcibios_alloc_controller() 129 phb->is_dynamic = slab_is_available(); in pcibios_alloc_controller() 137 PHB_SET_NODE(phb, nid); in pcibios_alloc_controller() 140 return phb; in pcibios_alloc_controller() 144 void pcibios_free_controller(struct pci_controller *phb) in pcibios_free_controller() argument [all …]
|
D | pci_dn.c | 155 pdn->phb = parent->phb; in add_one_dev_pci_data() 292 pdn->phb = hose; in pci_add_device_node_info() 484 void pci_devs_phb_init_dynamic(struct pci_controller *phb) in pci_devs_phb_init_dynamic() argument 486 struct device_node *dn = phb->dn; in pci_devs_phb_init_dynamic() 490 pdn = pci_add_device_node_info(phb, dn); 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() 499 pci_traverse_device_nodes(dn, add_pdn, phb); in pci_devs_phb_init_dynamic() 513 struct pci_controller *phb, *tmp; in pci_devs_phb_init() local 516 list_for_each_entry_safe(phb, tmp, &hose_list, list_node) in pci_devs_phb_init() [all …]
|
D | eeh_event.c | 78 pe->phb->global_number); in eeh_event_handler() 82 pe->phb->global_number, pe->addr); in eeh_event_handler() 184 if (event->pe && event->pe->phb == pe->phb) { in eeh_remove_event()
|
D | eeh.c | 173 pdn->phb->global_number, pdn->busno, in eeh_dump_dev_log() 176 pdn->phb->global_number, pdn->busno, in eeh_dump_dev_log() 379 phb_pe = eeh_phb_pe_get(pe->phb); in eeh_phb_check_failure() 382 __func__, pe->phb->global_number); in eeh_phb_check_failure() 406 phb_pe->phb->global_number, eeh_pe_loc_get(phb_pe)); in eeh_phb_check_failure() 547 pe->phb->global_number, pe->addr, in eeh_dev_check_failure() 548 pe->phb->global_number, parent_pe->addr); in eeh_dev_check_failure() 568 phb_pe = eeh_phb_pe_get(pe->phb); in eeh_dev_check_failure() 570 pe->phb->global_number, pe->addr); in eeh_dev_check_failure() 674 __func__, function, pe->phb->global_number, in eeh_pci_enable() [all …]
|
/Linux-v4.19/drivers/pci/hotplug/ |
D | rpadlpar_core.c | 138 struct pci_controller *phb = pdn->phb; in dlpar_pci_add_bus() local 144 dev = of_create_pci_dev(dn, phb->bus, pdn->devfn); in dlpar_pci_add_bus() 163 pcibios_finish_adding_to_bus(phb->bus); in dlpar_pci_add_bus() 169 struct pci_controller *phb; in dlpar_add_pci_slot() local 178 phb = PCI_DN(dn)->phb; in dlpar_add_pci_slot() 179 dev = dlpar_find_new_dev(phb->bus, dn); in dlpar_add_pci_slot() 220 BUG_ON(!pdn || !pdn->phb); in dlpar_remove_phb() 221 rc = remove_phb_dynamic(pdn->phb); in dlpar_remove_phb() 225 pdn->phb = NULL; in dlpar_remove_phb() 232 struct pci_controller *phb; in dlpar_add_phb() local [all …]
|
/Linux-v4.19/arch/powerpc/platforms/pasemi/ |
D | msi.c | 146 struct pci_controller *phb; in mpic_pasemi_msi_init() local 164 list_for_each_entry(phb, &hose_list, list_node) { in mpic_pasemi_msi_init() 165 WARN_ON(phb->controller_ops.setup_msi_irqs); in mpic_pasemi_msi_init() 166 phb->controller_ops.setup_msi_irqs = pasemi_msi_setup_msi_irqs; in mpic_pasemi_msi_init() 167 phb->controller_ops.teardown_msi_irqs = pasemi_msi_teardown_msi_irqs; in mpic_pasemi_msi_init()
|
/Linux-v4.19/arch/powerpc/platforms/cell/ |
D | spider-pci.c | 82 static int __init spiderpci_pci_setup_chip(struct pci_controller *phb, in spiderpci_pci_setup_chip() argument 112 dummy_page_da = dma_map_single(phb->parent, dummy_page_va, in spiderpci_pci_setup_chip() 114 if (dma_mapping_error(phb->parent, dummy_page_da)) { in spiderpci_pci_setup_chip() 129 struct device_node *np = bus->phb->dn; in spiderpci_iowa_init() 156 if (spiderpci_pci_setup_chip(bus->phb, regs)) in spiderpci_iowa_init()
|
D | setup.c | 121 static int cell_setup_phb(struct pci_controller *phb) in cell_setup_phb() argument 126 int rc = rtas_setup_phb(phb); in cell_setup_phb() 130 phb->controller_ops = cell_pci_controller_ops; in cell_setup_phb() 132 np = phb->dn; in cell_setup_phb() 141 iowa_register_bus(phb, &spiderpci_ops, &spiderpci_iowa_init, in cell_setup_phb()
|
/Linux-v4.19/arch/powerpc/sysdev/ |
D | mpic_u3msi.c | 185 struct pci_controller *phb; in mpic_u3msi_init() local 198 list_for_each_entry(phb, &hose_list, list_node) { in mpic_u3msi_init() 199 WARN_ON(phb->controller_ops.setup_msi_irqs); in mpic_u3msi_init() 200 phb->controller_ops.setup_msi_irqs = u3msi_setup_msi_irqs; in mpic_u3msi_init() 201 phb->controller_ops.teardown_msi_irqs = u3msi_teardown_msi_irqs; in mpic_u3msi_init()
|