Lines Matching refs:hose

78 static resource_size_t pcibios_io_size(const struct pci_controller *hose)  in pcibios_io_size()  argument
80 return resource_size(&hose->io_resource); in pcibios_io_size()
86 struct pci_controller *hose; in pcibios_vaddr_is_ioport() local
90 list_for_each_entry(hose, &hose_list, list_node) { in pcibios_vaddr_is_ioport()
91 size = pcibios_io_size(hose); in pcibios_vaddr_is_ioport()
92 if (address >= hose->io_base_virt && in pcibios_vaddr_is_ioport()
93 address < (hose->io_base_virt + size)) { in pcibios_vaddr_is_ioport()
104 struct pci_controller *hose; in pci_address_to_pio() local
109 list_for_each_entry(hose, &hose_list, list_node) { in pci_address_to_pio()
110 size = pcibios_io_size(hose); in pci_address_to_pio()
111 if (address >= hose->io_base_phys && in pci_address_to_pio()
112 address < (hose->io_base_phys + size)) { in pci_address_to_pio()
114 (unsigned long)hose->io_base_virt - _IO_BASE; in pci_address_to_pio()
115 ret = base + (address - hose->io_base_phys); in pci_address_to_pio()
135 struct pci_controller *hose, *tmp; in pci_find_hose_for_OF_device() local
136 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) in pci_find_hose_for_OF_device()
137 if (hose->dn == node) in pci_find_hose_for_OF_device()
138 return hose; in pci_find_hose_for_OF_device()
155 struct pci_controller *hose = pci_bus_to_host(pdev->bus); in pci_iobar_pfn() local
158 if (!hose) in pci_iobar_pfn()
162 ioaddr -= (unsigned long)hose->io_base_virt - _IO_BASE; in pci_iobar_pfn()
164 vma->vm_pgoff += (ioaddr + hose->io_base_phys) >> PAGE_SHIFT; in pci_iobar_pfn()
221 struct pci_controller *hose = pci_bus_to_host(bus); in pci_legacy_read() local
222 struct resource *rp = &hose->io_resource; in pci_legacy_read()
230 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pci_legacy_read()
237 addr = hose->io_base_virt + port; in pci_legacy_read()
261 struct pci_controller *hose = pci_bus_to_host(bus); in pci_legacy_write() local
262 struct resource *rp = &hose->io_resource; in pci_legacy_write()
270 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pci_legacy_write()
277 addr = hose->io_base_virt + port; in pci_legacy_write()
307 struct pci_controller *hose = pci_bus_to_host(bus); in pci_mmap_legacy_page_range() local
327 if ((offset + size) > hose->isa_mem_size) { in pci_mmap_legacy_page_range()
336 offset += hose->isa_mem_phys; in pci_mmap_legacy_page_range()
338 unsigned long io_offset = (unsigned long)hose->io_base_virt - in pci_mmap_legacy_page_range()
341 rp = &hose->io_resource; in pci_mmap_legacy_page_range()
346 offset += hose->io_base_phys; in pci_mmap_legacy_page_range()
415 void pci_process_bridge_OF_ranges(struct pci_controller *hose, in pci_process_bridge_OF_ranges() argument
452 if (hose->pci_io_size) { in pci_process_bridge_OF_ranges()
461 hose->io_base_virt = ioremap(range.cpu_addr, in pci_process_bridge_OF_ranges()
467 (unsigned long)hose->io_base_virt; in pci_process_bridge_OF_ranges()
471 hose->pci_io_size = range.pci_addr + range.size; in pci_process_bridge_OF_ranges()
472 hose->io_base_phys = range.cpu_addr - range.pci_addr; in pci_process_bridge_OF_ranges()
475 res = &hose->io_resource; in pci_process_bridge_OF_ranges()
497 hose->isa_mem_phys = range.cpu_addr; in pci_process_bridge_OF_ranges()
498 hose->isa_mem_size = range.size; in pci_process_bridge_OF_ranges()
507 hose->pci_mem_offset == isa_mb)) in pci_process_bridge_OF_ranges()
508 hose->pci_mem_offset = range.cpu_addr - in pci_process_bridge_OF_ranges()
511 hose->pci_mem_offset != range.cpu_addr - in pci_process_bridge_OF_ranges()
518 res = &hose->mem_resources[memno++]; in pci_process_bridge_OF_ranges()
534 if (isa_hole >= 0 && hose->pci_mem_offset != isa_mb) { in pci_process_bridge_OF_ranges()
538 memmove(&hose->mem_resources[isa_hole], in pci_process_bridge_OF_ranges()
539 &hose->mem_resources[next], in pci_process_bridge_OF_ranges()
541 hose->mem_resources[--memno].flags = 0; in pci_process_bridge_OF_ranges()
556 struct pci_controller *hose = pci_bus_to_host(dev->bus); in pcibios_fixup_resources() local
559 if (!hose) { in pcibios_fixup_resources()
815 struct pci_controller *hose = pci_bus_to_host(bus); in pcibios_reserve_legacy_regions() local
824 if (!(hose->io_resource.flags & IORESOURCE_IO)) in pcibios_reserve_legacy_regions()
826 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pcibios_reserve_legacy_regions()
834 if (request_resource(&hose->io_resource, res)) { in pcibios_reserve_legacy_regions()
842 offset = hose->pci_mem_offset; in pcibios_reserve_legacy_regions()
845 pres = &hose->mem_resources[i]; in pcibios_reserve_legacy_regions()
894 static void pcibios_setup_phb_resources(struct pci_controller *hose, in pcibios_setup_phb_resources() argument
902 res = &hose->io_resource; in pcibios_setup_phb_resources()
905 io_offset = (unsigned long)hose->io_base_virt - isa_io_base; in pcibios_setup_phb_resources()
912 hose->dn, hose->global_number); in pcibios_setup_phb_resources()
914 res->start = (unsigned long)hose->io_base_virt - isa_io_base; in pcibios_setup_phb_resources()
919 (__force resource_size_t)(hose->io_base_virt - _IO_BASE)); in pcibios_setup_phb_resources()
928 res = &hose->mem_resources[i]; in pcibios_setup_phb_resources()
934 hose->dn, hose->global_number); in pcibios_setup_phb_resources()
937 res->start = hose->pci_mem_offset; in pcibios_setup_phb_resources()
942 pci_add_resource_offset(resources, res, hose->pci_mem_offset); in pcibios_setup_phb_resources()
951 (unsigned long long)hose->pci_mem_offset); in pcibios_setup_phb_resources()
953 (unsigned long)hose->io_base_virt - _IO_BASE); in pcibios_setup_phb_resources()
956 static void pcibios_scan_phb(struct pci_controller *hose) in pcibios_scan_phb() argument
960 struct device_node *node = hose->dn; in pcibios_scan_phb()
964 pcibios_setup_phb_resources(hose, &resources); in pcibios_scan_phb()
966 bus = pci_scan_root_bus(hose->parent, hose->first_busno, in pcibios_scan_phb()
967 hose->ops, hose, &resources); in pcibios_scan_phb()
970 hose->global_number); in pcibios_scan_phb()
974 bus->busn_res.start = hose->first_busno; in pcibios_scan_phb()
975 hose->bus = bus; in pcibios_scan_phb()
977 hose->last_busno = bus->busn_res.end; in pcibios_scan_phb()
982 struct pci_controller *hose, *tmp; in pcibios_init() local
988 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { in pcibios_init()
989 hose->last_busno = 0xff; in pcibios_init()
990 pcibios_scan_phb(hose); in pcibios_init()
991 if (next_busno <= hose->last_busno) in pcibios_init()
992 next_busno = hose->last_busno + 1; in pcibios_init()
998 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { in pcibios_init()
999 if (hose->bus) in pcibios_init()
1000 pci_bus_add_devices(hose->bus); in pcibios_init()
1010 struct pci_controller *hose, *tmp; in pci_bus_to_hose() local
1012 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) in pci_bus_to_hose()
1013 if (bus >= hose->first_busno && bus <= hose->last_busno) in pci_bus_to_hose()
1014 return hose; in pci_bus_to_hose()
1026 struct pci_controller *hose; in sys_pciconfig_iobase() local
1029 hose = pci_bus_to_hose(bus); in sys_pciconfig_iobase()
1030 if (!hose) in sys_pciconfig_iobase()
1035 return (long)hose->first_busno; in sys_pciconfig_iobase()
1037 return (long)hose->pci_mem_offset; in sys_pciconfig_iobase()
1039 return (long)hose->io_base_phys; in sys_pciconfig_iobase()
1084 fake_pci_bus(struct pci_controller *hose, int busnr) in fake_pci_bus() argument
1088 if (!hose) in fake_pci_bus()
1092 bus.sysdata = hose; in fake_pci_bus()
1093 bus.ops = hose ? hose->ops : &null_pci_ops; in fake_pci_bus()
1098 int early_##rw##_config_##size(struct pci_controller *hose, int bus, \
1101 return pci_bus_##rw##_config_##size(fake_pci_bus(hose, bus), \
1112 int early_find_capability(struct pci_controller *hose, int bus, int devfn, in EARLY_PCI_OP()
1115 return pci_bus_find_capability(fake_pci_bus(hose, bus), devfn, cap); in EARLY_PCI_OP()