Home
last modified time | relevance | path

Searched refs:phb (Results 1 – 25 of 53) sorted by relevance

123

/OK3568_Linux_fs/kernel/arch/powerpc/platforms/powernv/
H A Dpci-ioda.c118 static struct pnv_ioda_pe *pnv_ioda_init_pe(struct pnv_phb *phb, int pe_no) in pnv_ioda_init_pe() argument
122 phb->ioda.pe_array[pe_no].phb = phb; in pnv_ioda_init_pe()
123 phb->ioda.pe_array[pe_no].pe_number = pe_no; in pnv_ioda_init_pe()
124 phb->ioda.pe_array[pe_no].dma_setup_done = false; in pnv_ioda_init_pe()
131 rc = opal_pci_eeh_freeze_clear(phb->opal_id, pe_no, in pnv_ioda_init_pe()
135 __func__, rc, phb->hose->global_number, pe_no); in pnv_ioda_init_pe()
137 return &phb->ioda.pe_array[pe_no]; in pnv_ioda_init_pe()
140 static void pnv_ioda_reserve_pe(struct pnv_phb *phb, int pe_no) in pnv_ioda_reserve_pe() argument
142 if (!(pe_no >= 0 && pe_no < phb->ioda.total_pe_num)) { in pnv_ioda_reserve_pe()
144 __func__, pe_no, phb->hose->global_number); in pnv_ioda_reserve_pe()
[all …]
H A Deeh-powernv.c108 struct pnv_phb *phb = hose->private_data; in pnv_eeh_dbgfs_set() local
110 out_be64(phb->regs + offset, val); in pnv_eeh_dbgfs_set()
117 struct pnv_phb *phb = hose->private_data; in pnv_eeh_dbgfs_get() local
119 *val = in_be64(phb->regs + offset); in pnv_eeh_dbgfs_get()
148 struct pnv_phb *phb; in pnv_eeh_enable_phbs() local
151 phb = hose->private_data; in pnv_eeh_enable_phbs()
158 phb->flags |= PNV_PHB_FLAG_EEH; in pnv_eeh_enable_phbs()
160 phb->flags &= ~PNV_PHB_FLAG_EEH; in pnv_eeh_enable_phbs()
175 struct pnv_phb *phb; in pnv_eeh_post_init() local
203 phb = hose->private_data; in pnv_eeh_post_init()
[all …]
H A Dpci-sriov.c148 struct pnv_phb *phb = pci_bus_to_pnvhb(pdev->bus); in pnv_pci_ioda_fixup_iov_resources() local
159 mul = phb->ioda.total_pe_num; in pnv_pci_ioda_fixup_iov_resources()
183 if (vf_bar_sz > (phb->ioda.m64_segsize >> 2)) { in pnv_pci_ioda_fixup_iov_resources()
257 struct pnv_phb *phb = pci_bus_to_pnvhb(pdev->bus); in pnv_pci_iov_resource_alignment() local
287 return phb->ioda.total_pe_num * align; in pnv_pci_iov_resource_alignment()
293 struct pnv_phb *phb; in pnv_pci_vf_release_m64() local
296 phb = pci_bus_to_pnvhb(pdev->bus); in pnv_pci_vf_release_m64()
300 opal_pci_phb_mmio_enable(phb->opal_id, in pnv_pci_vf_release_m64()
305 clear_bit(window_id, &phb->ioda.m64_bar_alloc); in pnv_pci_vf_release_m64()
317 static int64_t pnv_ioda_map_m64_segmented(struct pnv_phb *phb, in pnv_ioda_map_m64_segmented() argument
[all …]
H A Dpci-cxl.c15 struct pnv_phb *phb = hose->private_data; in pnv_phb_to_cxl_mode() local
25 rc = opal_pci_set_phb_cxl_mode(phb->opal_id, mode, pe->pe_number); in pnv_phb_to_cxl_mode()
41 struct pnv_phb *phb = hose->private_data; in pnv_cxl_alloc_hwirqs() local
42 int hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, num); in pnv_cxl_alloc_hwirqs()
49 return phb->msi_base + hwirq; in pnv_cxl_alloc_hwirqs()
56 struct pnv_phb *phb = hose->private_data; in pnv_cxl_release_hwirqs() local
58 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq - phb->msi_base, num); in pnv_cxl_release_hwirqs()
66 struct pnv_phb *phb = hose->private_data; in pnv_cxl_release_hwirq_ranges() local
75 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges()
76 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, in pnv_cxl_release_hwirq_ranges()
[all …]
H A Dpci.c165 struct pnv_phb *phb = pci_bus_to_pnvhb(pdev->bus); in pnv_setup_msi_irqs() local
172 if (WARN_ON(!phb) || !phb->msi_bmp.bitmap) in pnv_setup_msi_irqs()
175 if (pdev->no_64bit_msi && !phb->msi32_support) in pnv_setup_msi_irqs()
179 if (!entry->msi_attrib.is_64 && !phb->msi32_support) { in pnv_setup_msi_irqs()
184 hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, 1); in pnv_setup_msi_irqs()
190 virq = irq_create_mapping(NULL, phb->msi_base + hwirq); in pnv_setup_msi_irqs()
194 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1); in pnv_setup_msi_irqs()
197 rc = phb->msi_setup(phb, pdev, phb->msi_base + hwirq, in pnv_setup_msi_irqs()
202 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1); in pnv_setup_msi_irqs()
213 struct pnv_phb *phb = pci_bus_to_pnvhb(pdev->bus); in pnv_teardown_msi_irqs() local
[all …]
H A Dpci.h61 struct pnv_phb *phb; member
133 int (*msi_setup)(struct pnv_phb *phb, struct pci_dev *dev,
136 int (*init_m64)(struct pnv_phb *phb);
137 int (*get_pe_state)(struct pnv_phb *phb, int pe_no);
138 void (*freeze_pe)(struct pnv_phb *phb, int pe_no);
139 int (*unfreeze_pe)(struct pnv_phb *phb, int pe_no, int opt);
201 static inline bool pnv_pci_is_m64(struct pnv_phb *phb, struct resource *r) in pnv_pci_is_m64() argument
210 return (r->start >= phb->ioda.m64_base && in pnv_pci_is_m64()
211 r->start < (phb->ioda.m64_base + phb->ioda.m64_size)); in pnv_pci_is_m64()
221 int pnv_ioda_configure_pe(struct pnv_phb *phb, struct pnv_ioda_pe *pe);
[all …]
H A Dnpu-dma.c28 pdev = pci_get_domain_bus_and_slot(pci_domain_nr(pdn->phb->bus), in get_pci_dev()
101 struct pnv_phb *phb; in get_gpu_pci_dev_and_pe() local
116 phb = hose->private_data; in get_gpu_pci_dev_and_pe()
117 pe = &phb->ioda.pe_array[pdn->pe_number]; in get_gpu_pci_dev_and_pe()
133 struct pnv_phb *phb = npe->phb; in pnv_npu_set_window() local
149 rc = opal_pci_map_pe_dma_window(phb->opal_id, in pnv_npu_set_window()
160 pnv_pci_ioda2_tce_invalidate_entire(phb, false); in pnv_npu_set_window()
163 pnv_pci_link_table_and_group(phb->hose->node, num, in pnv_npu_set_window()
173 struct pnv_phb *phb = npe->phb; in pnv_npu_unset_window() local
181 rc = opal_pci_map_pe_dma_window(phb->opal_id, npe->pe_number, in pnv_npu_unset_window()
[all …]
/OK3568_Linux_fs/kernel/drivers/misc/cxl/
H A Dvphb.c30 struct pci_controller *phb; in cxl_pci_enable_device_hook() local
34 phb = pci_bus_to_host(dev->bus); in cxl_pci_enable_device_hook()
35 afu = (struct cxl_afu *)phb->private_data; in cxl_pci_enable_device_hook()
88 struct pci_controller *phb = bus ? pci_bus_to_host(bus) : NULL; in pci_bus_to_afu() local
90 return phb ? phb->private_data : NULL; in pci_bus_to_afu()
211 struct pci_controller *phb; in cxl_pci_vphb_add() local
237 phb = pcibios_alloc_controller(vphb_dn); in cxl_pci_vphb_add()
238 if (!phb) in cxl_pci_vphb_add()
242 phb->parent = parent; in cxl_pci_vphb_add()
245 phb->ops = &cxl_pcie_pci_ops; in cxl_pci_vphb_add()
[all …]
/OK3568_Linux_fs/kernel/arch/powerpc/platforms/pseries/
H A Dpci_dlpar.c23 struct pci_controller *phb; in init_phb_dynamic() local
27 phb = pcibios_alloc_controller(dn); in init_phb_dynamic()
28 if (!phb) in init_phb_dynamic()
30 rtas_setup_phb(phb); in init_phb_dynamic()
31 pci_process_bridge_OF_ranges(phb, dn, 0); in init_phb_dynamic()
32 phb->controller_ops = pseries_pci_controller_ops; in init_phb_dynamic()
34 pci_devs_phb_init_dynamic(phb); in init_phb_dynamic()
37 eeh_phb_pe_create(phb); in init_phb_dynamic()
42 pcibios_scan_phb(phb); in init_phb_dynamic()
43 pcibios_finish_adding_to_bus(phb->bus); in init_phb_dynamic()
[all …]
H A Deeh_pseries.c102 struct pci_controller *phb = pdn->phb; in pseries_eeh_get_pe_config_addr() local
111 config_addr, BUID_HI(phb->buid), in pseries_eeh_get_pe_config_addr()
112 BUID_LO(phb->buid), 1); in pseries_eeh_get_pe_config_addr()
118 config_addr, BUID_HI(phb->buid), in pseries_eeh_get_pe_config_addr()
119 BUID_LO(phb->buid), 0); in pseries_eeh_get_pe_config_addr()
122 __func__, phb->global_number, config_addr); in pseries_eeh_get_pe_config_addr()
131 config_addr, BUID_HI(phb->buid), in pseries_eeh_get_pe_config_addr()
132 BUID_LO(phb->buid), 0); in pseries_eeh_get_pe_config_addr()
135 __func__, phb->global_number, config_addr); in pseries_eeh_get_pe_config_addr()
160 static int pseries_eeh_phb_reset(struct pci_controller *phb, int config_addr, int option) in pseries_eeh_phb_reset() argument
[all …]
H A Diommu.c494 static void iommu_table_setparms(struct pci_controller *phb, in iommu_table_setparms() argument
502 node = phb->dn; in iommu_table_setparms()
517 tbl->it_busno = phb->bus->number; in iommu_table_setparms()
521 tbl->it_offset = phb->dma_window_base_cur >> tbl->it_page_shift; in iommu_table_setparms()
524 if (phb->dma_window_base_cur + phb->dma_window_size > 0x80000000ul) { in iommu_table_setparms()
529 phb->dma_window_base_cur += phb->dma_window_size; in iommu_table_setparms()
532 tbl->it_size = phb->dma_window_size >> tbl->it_page_shift; in iommu_table_setparms()
544 static void iommu_table_setparms_lpar(struct pci_controller *phb, in iommu_table_setparms_lpar() argument
554 tbl->it_busno = phb->bus->number; in iommu_table_setparms_lpar()
617 pci->phb->dma_window_size = 0x80000000ul; /* To be divided */ in pci_dma_bus_setup_pSeries()
[all …]
/OK3568_Linux_fs/kernel/arch/powerpc/kernel/
H A Dof_platform.c37 struct pci_controller *phb; in of_pci_phb_probe() local
46 phb = pcibios_alloc_controller(dev->dev.of_node); in of_pci_phb_probe()
47 if (!phb) in of_pci_phb_probe()
51 phb->parent = &dev->dev; in of_pci_phb_probe()
54 if (ppc_md.pci_setup_phb(phb)) { in of_pci_phb_probe()
55 pcibios_free_controller(phb); in of_pci_phb_probe()
60 pci_process_bridge_OF_ranges(phb, dev->dev.of_node, 0); in of_pci_phb_probe()
63 pci_devs_phb_init_dynamic(phb); in of_pci_phb_probe()
66 eeh_phb_pe_create(phb); in of_pci_phb_probe()
69 pcibios_scan_phb(phb); in of_pci_phb_probe()
[all …]
H A Dpci-hotplug.c42 if (!pdn || !pdn->phb || !pdn->phb->bus) in pci_find_bus_by_node()
45 return find_bus_among_children(pdn->phb->bus, dn); in pci_find_bus_by_node()
57 struct pci_controller *phb = pci_bus_to_host(dev->bus); in pcibios_release_device() local
60 if (phb->controller_ops.release_device) in pcibios_release_device()
61 phb->controller_ops.release_device(dev); in pcibios_release_device()
110 struct pci_controller *phb; in pci_hp_add_devices() local
113 phb = pci_bus_to_host(bus); in pci_hp_add_devices()
116 if (phb->controller_ops.probe_mode) in pci_hp_add_devices()
117 mode = phb->controller_ops.probe_mode(bus); in pci_hp_add_devices()
H A Drtas_pci.c62 buid = pdn->phb->buid; in rtas_read_config()
113 buid = pdn->phb->buid; in rtas_write_config()
199 unsigned long get_phb_buid(struct device_node *phb) in get_phb_buid() argument
205 if (of_address_to_resource(phb, 0, &r)) in get_phb_buid()
211 struct pci_controller *phb) in phb_set_bus_ranges() argument
221 phb->first_busno = be32_to_cpu(bus_range[0]); in phb_set_bus_ranges()
222 phb->last_busno = be32_to_cpu(bus_range[1]); in phb_set_bus_ranges()
227 int rtas_setup_phb(struct pci_controller *phb) in rtas_setup_phb() argument
229 struct device_node *dev = phb->dn; in rtas_setup_phb()
234 if (phb_set_bus_ranges(dev, phb)) in rtas_setup_phb()
[all …]
H A Dmsi.c14 struct pci_controller *phb = pci_bus_to_host(dev->bus); in arch_setup_msi_irqs() local
16 if (!phb->controller_ops.setup_msi_irqs || in arch_setup_msi_irqs()
17 !phb->controller_ops.teardown_msi_irqs) { in arch_setup_msi_irqs()
26 return phb->controller_ops.setup_msi_irqs(dev, nvec, type); in arch_setup_msi_irqs()
31 struct pci_controller *phb = pci_bus_to_host(dev->bus); in arch_teardown_msi_irqs() local
37 if (phb->controller_ops.teardown_msi_irqs) in arch_teardown_msi_irqs()
38 phb->controller_ops.teardown_msi_irqs(dev); in arch_teardown_msi_irqs()
H A Dpci-common.c124 struct pci_controller *phb; in pcibios_alloc_controller() local
126 phb = zalloc_maybe_bootmem(sizeof(struct pci_controller), GFP_KERNEL); in pcibios_alloc_controller()
127 if (phb == NULL) in pcibios_alloc_controller()
130 phb->global_number = get_phb_number(dev); in pcibios_alloc_controller()
133 list_add_tail(&phb->list_node, &hose_list); in pcibios_alloc_controller()
136 phb->dn = dev; in pcibios_alloc_controller()
137 phb->is_dynamic = slab_is_available(); in pcibios_alloc_controller()
145 PHB_SET_NODE(phb, nid); in pcibios_alloc_controller()
148 return phb; in pcibios_alloc_controller()
152 void pcibios_free_controller(struct pci_controller *phb) in pcibios_free_controller() argument
[all …]
H A Dio-workarounds.c35 struct pci_controller *phb = bus->phb; in iowa_pci_find() local
38 vstart = (unsigned long)phb->io_base_virt; in iowa_pci_find()
39 vend = vstart + phb->pci_io_size - 1; in iowa_pci_find()
46 res = &phb->mem_resources[j]; in iowa_pci_find()
180 void iowa_register_bus(struct pci_controller *phb, struct ppc_pci_io *ops, in iowa_register_bus() argument
184 struct device_node *np = phb->dn; in iowa_register_bus()
195 bus->phb = phb; in iowa_register_bus()
H A Dpci_dn.c141 edev->controller = pdn->phb; in eeh_dev_init()
161 pdn->phb = parent->phb; in add_one_sriov_vf_pdn()
297 pdn->phb = hose; in pci_add_device_node_info()
369 pdev = pci_get_domain_bus_and_slot(pdn->phb->global_number, in pci_remove_device_node_info()
507 void pci_devs_phb_init_dynamic(struct pci_controller *phb) in pci_devs_phb_init_dynamic() argument
509 struct device_node *dn = phb->dn; in pci_devs_phb_init_dynamic()
513 pdn = pci_add_device_node_info(phb, dn); in pci_devs_phb_init_dynamic()
517 pdn->phb = phb; in pci_devs_phb_init_dynamic()
518 phb->pci_data = pdn; in pci_devs_phb_init_dynamic()
522 pci_traverse_device_nodes(dn, add_pdn, phb); in pci_devs_phb_init_dynamic()
[all …]
H A Deeh_pe.c46 static struct eeh_pe *eeh_pe_alloc(struct pci_controller *phb, int type) in eeh_pe_alloc() argument
63 pe->phb = phb; in eeh_pe_alloc()
79 int eeh_phb_pe_create(struct pci_controller *phb) in eeh_phb_pe_create() argument
84 pe = eeh_pe_alloc(phb, EEH_PE_PHB); in eeh_phb_pe_create()
93 pr_debug("EEH: Add PE for PHB#%x\n", phb->global_number); in eeh_phb_pe_create()
157 struct eeh_pe *eeh_phb_pe_get(struct pci_controller *phb) in eeh_phb_pe_get() argument
167 if ((pe->type & EEH_PE_PHB) && pe->phb == phb) in eeh_phb_pe_get()
286 struct eeh_pe *eeh_pe_get(struct pci_controller *phb, int pe_no) in eeh_pe_get() argument
288 struct eeh_pe *root = eeh_phb_pe_get(phb); in eeh_pe_get()
854 return pe->phb->bus; in eeh_pe_bus_get()
H A Deeh.c176 edev->pe->phb->global_number, edev->bdfn >> 8, in eeh_dump_dev_log()
179 edev->pe->phb->global_number, edev->bdfn >> 8, in eeh_dump_dev_log()
388 phb_pe = eeh_phb_pe_get(pe->phb); in eeh_phb_check_failure()
391 __func__, pe->phb->global_number); in eeh_phb_check_failure()
415 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()
569 __func__, pe->phb->global_number, pe->addr); in eeh_dev_check_failure()
669 __func__, function, pe->phb->global_number, in eeh_pci_enable()
815 pe->phb->global_number, pe->addr); in eeh_pe_refreeze_passed()
[all …]
/OK3568_Linux_fs/kernel/drivers/pci/hotplug/
H A Drpadlpar_core.c140 struct pci_controller *phb = pdn->phb; in dlpar_pci_add_bus() local
146 dev = of_create_pci_dev(dn, phb->bus, pdn->devfn); in dlpar_pci_add_bus()
165 pcibios_finish_adding_to_bus(phb->bus); in dlpar_pci_add_bus()
171 struct pci_controller *phb; in dlpar_add_pci_slot() local
180 phb = PCI_DN(dn)->phb; in dlpar_add_pci_slot()
181 dev = dlpar_find_new_dev(phb->bus, dn); in dlpar_add_pci_slot()
222 BUG_ON(!pdn || !pdn->phb); in dlpar_remove_phb()
223 rc = remove_phb_dynamic(pdn->phb); in dlpar_remove_phb()
227 pdn->phb = NULL; in dlpar_remove_phb()
234 struct pci_controller *phb; in dlpar_add_phb() local
[all …]
/OK3568_Linux_fs/kernel/arch/powerpc/platforms/pasemi/
H A Dmsi.c141 struct pci_controller *phb; in mpic_pasemi_msi_init() local
159 list_for_each_entry(phb, &hose_list, list_node) { in mpic_pasemi_msi_init()
160 WARN_ON(phb->controller_ops.setup_msi_irqs); in mpic_pasemi_msi_init()
161 phb->controller_ops.setup_msi_irqs = pasemi_msi_setup_msi_irqs; in mpic_pasemi_msi_init()
162 phb->controller_ops.teardown_msi_irqs = pasemi_msi_teardown_msi_irqs; in mpic_pasemi_msi_init()
/OK3568_Linux_fs/kernel/arch/powerpc/platforms/cell/
H A Dspider-pci.c69 static int __init spiderpci_pci_setup_chip(struct pci_controller *phb, in spiderpci_pci_setup_chip() argument
99 dummy_page_da = dma_map_single(phb->parent, dummy_page_va, in spiderpci_pci_setup_chip()
101 if (dma_mapping_error(phb->parent, dummy_page_da)) { in spiderpci_pci_setup_chip()
116 struct device_node *np = bus->phb->dn; in spiderpci_iowa_init()
143 if (spiderpci_pci_setup_chip(bus->phb, regs)) in spiderpci_iowa_init()
H A Dsetup.c116 static int cell_setup_phb(struct pci_controller *phb) in cell_setup_phb() argument
121 int rc = rtas_setup_phb(phb); in cell_setup_phb()
125 phb->controller_ops = cell_pci_controller_ops; in cell_setup_phb()
127 np = phb->dn; in cell_setup_phb()
136 iowa_register_bus(phb, &spiderpci_ops, &spiderpci_iowa_init, in cell_setup_phb()
/OK3568_Linux_fs/kernel/arch/powerpc/sysdev/
H A Dmpic_u3msi.c180 struct pci_controller *phb; in mpic_u3msi_init() local
193 list_for_each_entry(phb, &hose_list, list_node) { in mpic_u3msi_init()
194 WARN_ON(phb->controller_ops.setup_msi_irqs); in mpic_u3msi_init()
195 phb->controller_ops.setup_msi_irqs = u3msi_setup_msi_irqs; in mpic_u3msi_init()
196 phb->controller_ops.teardown_msi_irqs = u3msi_teardown_msi_irqs; in mpic_u3msi_init()

123