Lines Matching refs:pbm

18 static int config_out_of_range(struct pci_pbm_info *pbm,  in config_out_of_range()  argument
23 if (bus < pbm->pci_first_busno || in config_out_of_range()
24 bus > pbm->pci_last_busno) in config_out_of_range()
29 static void *sun4u_config_mkaddr(struct pci_pbm_info *pbm, in sun4u_config_mkaddr() argument
34 unsigned long rbits = pbm->config_space_reg_bits; in sun4u_config_mkaddr()
36 if (config_out_of_range(pbm, bus, devfn, reg)) in sun4u_config_mkaddr()
43 return (void *) (pbm->config_space | bus | devfn | reg); in sun4u_config_mkaddr()
51 static int sun4u_read_pci_cfg_host(struct pci_pbm_info *pbm, in sun4u_read_pci_cfg_host() argument
59 addr = sun4u_config_mkaddr(pbm, bus, devfn, where); in sun4u_read_pci_cfg_host()
94 sun4u_read_pci_cfg_host(pbm, bus, devfn, in sun4u_read_pci_cfg_host()
99 sun4u_read_pci_cfg_host(pbm, bus, devfn, in sun4u_read_pci_cfg_host()
110 struct pci_pbm_info *pbm = bus_dev->sysdata; in sun4u_read_pci_cfg() local
129 return sun4u_read_pci_cfg_host(pbm, bus, devfn, where, in sun4u_read_pci_cfg()
132 addr = sun4u_config_mkaddr(pbm, bus, devfn, where); in sun4u_read_pci_cfg()
164 static int sun4u_write_pci_cfg_host(struct pci_pbm_info *pbm, in sun4u_write_pci_cfg_host() argument
170 addr = sun4u_config_mkaddr(pbm, bus, devfn, where); in sun4u_write_pci_cfg_host()
202 sun4u_write_pci_cfg_host(pbm, bus, devfn, in sun4u_write_pci_cfg_host()
204 sun4u_write_pci_cfg_host(pbm, bus, devfn, in sun4u_write_pci_cfg_host()
214 struct pci_pbm_info *pbm = bus_dev->sysdata; in sun4u_write_pci_cfg() local
219 return sun4u_write_pci_cfg_host(pbm, bus, devfn, where, in sun4u_write_pci_cfg()
222 addr = sun4u_config_mkaddr(pbm, bus, devfn, where); in sun4u_write_pci_cfg()
259 struct pci_pbm_info *pbm = bus_dev->sysdata; in sun4v_read_pci_cfg() local
260 u32 devhandle = pbm->devhandle; in sun4v_read_pci_cfg()
266 if (config_out_of_range(pbm, bus, devfn, where)) { in sun4v_read_pci_cfg()
292 struct pci_pbm_info *pbm = bus_dev->sysdata; in sun4v_write_pci_cfg() local
293 u32 devhandle = pbm->devhandle; in sun4v_write_pci_cfg()
298 if (config_out_of_range(pbm, bus, devfn, where)) { in sun4v_write_pci_cfg()
317 void pci_get_pbm_props(struct pci_pbm_info *pbm) in pci_get_pbm_props() argument
319 const u32 *val = of_get_property(pbm->op->dev.of_node, "bus-range", NULL); in pci_get_pbm_props()
321 pbm->pci_first_busno = val[0]; in pci_get_pbm_props()
322 pbm->pci_last_busno = val[1]; in pci_get_pbm_props()
324 val = of_get_property(pbm->op->dev.of_node, "ino-bitmap", NULL); in pci_get_pbm_props()
326 pbm->ino_bitmap = (((u64)val[1] << 32UL) | in pci_get_pbm_props()
368 static void pci_register_iommu_region(struct pci_pbm_info *pbm) in pci_register_iommu_region() argument
370 const u32 *vdma = of_get_property(pbm->op->dev.of_node, "virtual-dma", in pci_register_iommu_region()
378 pbm->name); in pci_register_iommu_region()
382 rp->start = pbm->mem_space.start + (unsigned long) vdma[0]; in pci_register_iommu_region()
385 if (request_resource(&pbm->mem_space, rp)) { in pci_register_iommu_region()
387 pbm->name); in pci_register_iommu_region()
393 void pci_determine_mem_io_space(struct pci_pbm_info *pbm) in pci_determine_mem_io_space() argument
400 pbm_ranges = of_get_property(pbm->op->dev.of_node, "ranges", &i); in pci_determine_mem_io_space()
404 pbm->name); in pci_determine_mem_io_space()
409 memset(&pbm->mem64_space, 0, sizeof(struct resource)); in pci_determine_mem_io_space()
435 pbm->config_space = a; in pci_determine_mem_io_space()
440 pbm->io_space.start = a; in pci_determine_mem_io_space()
441 pbm->io_space.end = a + size - 1UL; in pci_determine_mem_io_space()
442 pbm->io_space.flags = IORESOURCE_IO; in pci_determine_mem_io_space()
448 pbm->mem_space.start = a; in pci_determine_mem_io_space()
449 pbm->mem_space.end = a + size - 1UL; in pci_determine_mem_io_space()
450 pbm->mem_space.flags = IORESOURCE_MEM; in pci_determine_mem_io_space()
456 pbm->mem64_space.start = a; in pci_determine_mem_io_space()
457 pbm->mem64_space.end = a + size - 1UL; in pci_determine_mem_io_space()
458 pbm->mem64_space.flags = IORESOURCE_MEM; in pci_determine_mem_io_space()
469 pbm->name, in pci_determine_mem_io_space()
475 pbm->name, in pci_determine_mem_io_space()
476 pbm->io_space.start, in pci_determine_mem_io_space()
477 pbm->mem_space.start); in pci_determine_mem_io_space()
478 if (pbm->mem64_space.flags) in pci_determine_mem_io_space()
480 pbm->mem64_space.start); in pci_determine_mem_io_space()
483 pbm->io_space.name = pbm->mem_space.name = pbm->name; in pci_determine_mem_io_space()
484 pbm->mem64_space.name = pbm->name; in pci_determine_mem_io_space()
486 request_resource(&ioport_resource, &pbm->io_space); in pci_determine_mem_io_space()
487 request_resource(&iomem_resource, &pbm->mem_space); in pci_determine_mem_io_space()
488 if (pbm->mem64_space.flags) in pci_determine_mem_io_space()
489 request_resource(&iomem_resource, &pbm->mem64_space); in pci_determine_mem_io_space()
491 pci_register_legacy_regions(&pbm->io_space, in pci_determine_mem_io_space()
492 &pbm->mem_space); in pci_determine_mem_io_space()
493 pci_register_iommu_region(pbm); in pci_determine_mem_io_space()
497 void pci_scan_for_target_abort(struct pci_pbm_info *pbm, in pci_scan_for_target_abort() argument
513 pbm->name, pci_name(pdev), status); in pci_scan_for_target_abort()
518 pci_scan_for_target_abort(pbm, bus); in pci_scan_for_target_abort()
521 void pci_scan_for_master_abort(struct pci_pbm_info *pbm, in pci_scan_for_master_abort() argument
536 pbm->name, pci_name(pdev), status); in pci_scan_for_master_abort()
541 pci_scan_for_master_abort(pbm, bus); in pci_scan_for_master_abort()
544 void pci_scan_for_parity_error(struct pci_pbm_info *pbm, in pci_scan_for_parity_error() argument
560 pbm->name, pci_name(pdev), status); in pci_scan_for_parity_error()
565 pci_scan_for_parity_error(pbm, bus); in pci_scan_for_parity_error()