Lines Matching refs:hose

79 static resource_size_t pcibios_io_size(const struct pci_controller *hose)  in pcibios_io_size()  argument
81 return resource_size(&hose->io_resource); in pcibios_io_size()
87 struct pci_controller *hose; in pcibios_vaddr_is_ioport() local
91 list_for_each_entry(hose, &hose_list, list_node) { in pcibios_vaddr_is_ioport()
92 size = pcibios_io_size(hose); in pcibios_vaddr_is_ioport()
93 if (address >= hose->io_base_virt && in pcibios_vaddr_is_ioport()
94 address < (hose->io_base_virt + size)) { in pcibios_vaddr_is_ioport()
105 struct pci_controller *hose; in pci_address_to_pio() local
110 list_for_each_entry(hose, &hose_list, list_node) { in pci_address_to_pio()
111 size = pcibios_io_size(hose); in pci_address_to_pio()
112 if (address >= hose->io_base_phys && in pci_address_to_pio()
113 address < (hose->io_base_phys + size)) { in pci_address_to_pio()
115 (unsigned long)hose->io_base_virt - _IO_BASE; in pci_address_to_pio()
116 ret = base + (address - hose->io_base_phys); in pci_address_to_pio()
131 struct pci_controller *hose = pci_bus_to_host(bus); in pci_domain_nr() local
133 return hose->global_number; in pci_domain_nr()
147 struct pci_controller *hose, *tmp; in pci_find_hose_for_OF_device() local
148 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) in pci_find_hose_for_OF_device()
149 if (hose->dn == node) in pci_find_hose_for_OF_device()
150 return hose; in pci_find_hose_for_OF_device()
182 struct pci_controller *hose = pci_bus_to_host(dev->bus); in __pci_mmap_make_offset() local
186 if (!hose) in __pci_mmap_make_offset()
192 *offset += hose->pci_mem_offset; in __pci_mmap_make_offset()
196 io_offset = (unsigned long)hose->io_base_virt - _IO_BASE; in __pci_mmap_make_offset()
223 *offset += hose->io_base_phys - io_offset; in __pci_mmap_make_offset()
343 struct pci_controller *hose = pci_bus_to_host(bus); in pci_legacy_read() local
344 struct resource *rp = &hose->io_resource; in pci_legacy_read()
352 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pci_legacy_read()
359 addr = hose->io_base_virt + port; in pci_legacy_read()
383 struct pci_controller *hose = pci_bus_to_host(bus); in pci_legacy_write() local
384 struct resource *rp = &hose->io_resource; in pci_legacy_write()
392 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pci_legacy_write()
399 addr = hose->io_base_virt + port; in pci_legacy_write()
429 struct pci_controller *hose = pci_bus_to_host(bus); in pci_mmap_legacy_page_range() local
449 if ((offset + size) > hose->isa_mem_size) { in pci_mmap_legacy_page_range()
460 offset += hose->isa_mem_phys; in pci_mmap_legacy_page_range()
462 unsigned long io_offset = (unsigned long)hose->io_base_virt - in pci_mmap_legacy_page_range()
465 rp = &hose->io_resource; in pci_mmap_legacy_page_range()
470 offset += hose->io_base_phys; in pci_mmap_legacy_page_range()
485 struct pci_controller *hose = pci_bus_to_host(dev->bus); in pci_resource_to_user() local
488 if (hose == NULL) in pci_resource_to_user()
492 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pci_resource_to_user()
513 offset = hose->pci_mem_offset; in pci_resource_to_user()
553 void pci_process_bridge_OF_ranges(struct pci_controller *hose, in pci_process_bridge_OF_ranges() argument
594 if (hose->pci_io_size) { in pci_process_bridge_OF_ranges()
603 hose->io_base_virt = ioremap(range.cpu_addr, in pci_process_bridge_OF_ranges()
609 (unsigned long)hose->io_base_virt; in pci_process_bridge_OF_ranges()
613 hose->pci_io_size = range.pci_addr + range.size; in pci_process_bridge_OF_ranges()
614 hose->io_base_phys = range.cpu_addr - range.pci_addr; in pci_process_bridge_OF_ranges()
617 res = &hose->io_resource; in pci_process_bridge_OF_ranges()
639 hose->isa_mem_phys = range.cpu_addr; in pci_process_bridge_OF_ranges()
640 hose->isa_mem_size = range.size; in pci_process_bridge_OF_ranges()
649 hose->pci_mem_offset == isa_mb)) in pci_process_bridge_OF_ranges()
650 hose->pci_mem_offset = range.cpu_addr - in pci_process_bridge_OF_ranges()
653 hose->pci_mem_offset != range.cpu_addr - in pci_process_bridge_OF_ranges()
660 res = &hose->mem_resources[memno++]; in pci_process_bridge_OF_ranges()
676 if (isa_hole >= 0 && hose->pci_mem_offset != isa_mb) { in pci_process_bridge_OF_ranges()
680 memmove(&hose->mem_resources[isa_hole], in pci_process_bridge_OF_ranges()
681 &hose->mem_resources[next], in pci_process_bridge_OF_ranges()
683 hose->mem_resources[--memno].flags = 0; in pci_process_bridge_OF_ranges()
698 struct pci_controller *hose = pci_bus_to_host(dev->bus); in pcibios_fixup_resources() local
701 if (!hose) { in pcibios_fixup_resources()
740 struct pci_controller *hose = pci_bus_to_host(bus); in pcibios_uninitialized_bridge_resource() local
751 if (res->start != hose->pci_mem_offset) in pcibios_uninitialized_bridge_resource()
766 if ((hose->mem_resources[i].flags & IORESOURCE_MEM) && in pcibios_uninitialized_bridge_resource()
767 hose->mem_resources[i].start == hose->pci_mem_offset) in pcibios_uninitialized_bridge_resource()
777 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pcibios_uninitialized_bridge_resource()
1134 struct pci_controller *hose = pci_bus_to_host(bus); in pcibios_reserve_legacy_regions() local
1143 if (!(hose->io_resource.flags & IORESOURCE_IO)) in pcibios_reserve_legacy_regions()
1145 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pcibios_reserve_legacy_regions()
1153 if (request_resource(&hose->io_resource, res)) { in pcibios_reserve_legacy_regions()
1161 offset = hose->pci_mem_offset; in pcibios_reserve_legacy_regions()
1164 pres = &hose->mem_resources[i]; in pcibios_reserve_legacy_regions()
1274 static void pcibios_setup_phb_resources(struct pci_controller *hose, in pcibios_setup_phb_resources() argument
1282 res = &hose->io_resource; in pcibios_setup_phb_resources()
1285 io_offset = (unsigned long)hose->io_base_virt - isa_io_base; in pcibios_setup_phb_resources()
1292 hose->dn->full_name, hose->global_number); in pcibios_setup_phb_resources()
1294 res->start = (unsigned long)hose->io_base_virt - isa_io_base; in pcibios_setup_phb_resources()
1299 (__force resource_size_t)(hose->io_base_virt - _IO_BASE)); in pcibios_setup_phb_resources()
1308 res = &hose->mem_resources[i]; in pcibios_setup_phb_resources()
1314 hose->dn->full_name, hose->global_number); in pcibios_setup_phb_resources()
1317 res->start = hose->pci_mem_offset; in pcibios_setup_phb_resources()
1322 pci_add_resource_offset(resources, res, hose->pci_mem_offset); in pcibios_setup_phb_resources()
1331 (unsigned long long)hose->pci_mem_offset); in pcibios_setup_phb_resources()
1333 (unsigned long)hose->io_base_virt - _IO_BASE); in pcibios_setup_phb_resources()
1338 struct pci_controller *hose = bus->sysdata; in pcibios_get_phb_of_node() local
1340 return of_node_get(hose->dn); in pcibios_get_phb_of_node()
1343 static void pcibios_scan_phb(struct pci_controller *hose) in pcibios_scan_phb() argument
1347 struct device_node *node = hose->dn; in pcibios_scan_phb()
1351 pcibios_setup_phb_resources(hose, &resources); in pcibios_scan_phb()
1353 bus = pci_scan_root_bus(hose->parent, hose->first_busno, in pcibios_scan_phb()
1354 hose->ops, hose, &resources); in pcibios_scan_phb()
1357 hose->global_number); in pcibios_scan_phb()
1361 bus->busn_res.start = hose->first_busno; in pcibios_scan_phb()
1362 hose->bus = bus; in pcibios_scan_phb()
1364 hose->last_busno = bus->busn_res.end; in pcibios_scan_phb()
1369 struct pci_controller *hose, *tmp; in pcibios_init() local
1375 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { in pcibios_init()
1376 hose->last_busno = 0xff; in pcibios_init()
1377 pcibios_scan_phb(hose); in pcibios_init()
1378 if (next_busno <= hose->last_busno) in pcibios_init()
1379 next_busno = hose->last_busno + 1; in pcibios_init()
1385 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { in pcibios_init()
1386 if (hose->bus) in pcibios_init()
1387 pci_bus_add_devices(hose->bus); in pcibios_init()
1397 struct pci_controller *hose, *tmp; in pci_bus_to_hose() local
1399 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) in pci_bus_to_hose()
1400 if (bus >= hose->first_busno && bus <= hose->last_busno) in pci_bus_to_hose()
1401 return hose; in pci_bus_to_hose()
1413 struct pci_controller *hose; in sys_pciconfig_iobase() local
1416 hose = pci_bus_to_hose(bus); in sys_pciconfig_iobase()
1417 if (!hose) in sys_pciconfig_iobase()
1422 return (long)hose->first_busno; in sys_pciconfig_iobase()
1424 return (long)hose->pci_mem_offset; in sys_pciconfig_iobase()
1426 return (long)hose->io_base_phys; in sys_pciconfig_iobase()
1471 fake_pci_bus(struct pci_controller *hose, int busnr) in fake_pci_bus() argument
1475 if (!hose) in fake_pci_bus()
1479 bus.sysdata = hose; in fake_pci_bus()
1480 bus.ops = hose ? hose->ops : &null_pci_ops; in fake_pci_bus()
1485 int early_##rw##_config_##size(struct pci_controller *hose, int bus, \
1488 return pci_bus_##rw##_config_##size(fake_pci_bus(hose, bus), \
1499 int early_find_capability(struct pci_controller *hose, int bus, int devfn, in EARLY_PCI_OP()
1502 return pci_bus_find_capability(fake_pci_bus(hose, bus), devfn, cap); in EARLY_PCI_OP()