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()
338 offset += hose->isa_mem_phys; in pci_mmap_legacy_page_range()
340 unsigned long io_offset = (unsigned long)hose->io_base_virt - in pci_mmap_legacy_page_range()
343 rp = &hose->io_resource; in pci_mmap_legacy_page_range()
348 offset += hose->io_base_phys; in pci_mmap_legacy_page_range()
417 void pci_process_bridge_OF_ranges(struct pci_controller *hose, in pci_process_bridge_OF_ranges() argument
454 if (hose->pci_io_size) { in pci_process_bridge_OF_ranges()
463 hose->io_base_virt = ioremap(range.cpu_addr, in pci_process_bridge_OF_ranges()
469 (unsigned long)hose->io_base_virt; in pci_process_bridge_OF_ranges()
473 hose->pci_io_size = range.pci_addr + range.size; in pci_process_bridge_OF_ranges()
474 hose->io_base_phys = range.cpu_addr - range.pci_addr; in pci_process_bridge_OF_ranges()
477 res = &hose->io_resource; in pci_process_bridge_OF_ranges()
499 hose->isa_mem_phys = range.cpu_addr; in pci_process_bridge_OF_ranges()
500 hose->isa_mem_size = range.size; in pci_process_bridge_OF_ranges()
509 hose->pci_mem_offset == isa_mb)) in pci_process_bridge_OF_ranges()
510 hose->pci_mem_offset = range.cpu_addr - in pci_process_bridge_OF_ranges()
513 hose->pci_mem_offset != range.cpu_addr - in pci_process_bridge_OF_ranges()
520 res = &hose->mem_resources[memno++]; in pci_process_bridge_OF_ranges()
536 if (isa_hole >= 0 && hose->pci_mem_offset != isa_mb) { in pci_process_bridge_OF_ranges()
540 memmove(&hose->mem_resources[isa_hole], in pci_process_bridge_OF_ranges()
541 &hose->mem_resources[next], in pci_process_bridge_OF_ranges()
543 hose->mem_resources[--memno].flags = 0; in pci_process_bridge_OF_ranges()
558 struct pci_controller *hose = pci_bus_to_host(dev->bus); in pcibios_fixup_resources() local
561 if (!hose) { in pcibios_fixup_resources()
818 struct pci_controller *hose = pci_bus_to_host(bus); in pcibios_reserve_legacy_regions() local
827 if (!(hose->io_resource.flags & IORESOURCE_IO)) in pcibios_reserve_legacy_regions()
829 offset = (unsigned long)hose->io_base_virt - _IO_BASE; in pcibios_reserve_legacy_regions()
837 if (request_resource(&hose->io_resource, res)) { in pcibios_reserve_legacy_regions()
845 offset = hose->pci_mem_offset; in pcibios_reserve_legacy_regions()
848 pres = &hose->mem_resources[i]; in pcibios_reserve_legacy_regions()
897 static void pcibios_setup_phb_resources(struct pci_controller *hose, in pcibios_setup_phb_resources() argument
905 res = &hose->io_resource; in pcibios_setup_phb_resources()
908 io_offset = (unsigned long)hose->io_base_virt - isa_io_base; in pcibios_setup_phb_resources()
915 hose->dn, hose->global_number); in pcibios_setup_phb_resources()
917 res->start = (unsigned long)hose->io_base_virt - isa_io_base; in pcibios_setup_phb_resources()
922 (__force resource_size_t)(hose->io_base_virt - _IO_BASE)); in pcibios_setup_phb_resources()
931 res = &hose->mem_resources[i]; in pcibios_setup_phb_resources()
937 hose->dn, hose->global_number); in pcibios_setup_phb_resources()
940 res->start = hose->pci_mem_offset; in pcibios_setup_phb_resources()
945 pci_add_resource_offset(resources, res, hose->pci_mem_offset); in pcibios_setup_phb_resources()
954 (unsigned long long)hose->pci_mem_offset); in pcibios_setup_phb_resources()
956 (unsigned long)hose->io_base_virt - _IO_BASE); in pcibios_setup_phb_resources()
959 static void pcibios_scan_phb(struct pci_controller *hose) in pcibios_scan_phb() argument
963 struct device_node *node = hose->dn; in pcibios_scan_phb()
967 pcibios_setup_phb_resources(hose, &resources); in pcibios_scan_phb()
969 bus = pci_scan_root_bus(hose->parent, hose->first_busno, in pcibios_scan_phb()
970 hose->ops, hose, &resources); in pcibios_scan_phb()
973 hose->global_number); in pcibios_scan_phb()
977 bus->busn_res.start = hose->first_busno; in pcibios_scan_phb()
978 hose->bus = bus; in pcibios_scan_phb()
980 hose->last_busno = bus->busn_res.end; in pcibios_scan_phb()
985 struct pci_controller *hose, *tmp; in pcibios_init() local
991 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { in pcibios_init()
992 hose->last_busno = 0xff; in pcibios_init()
993 pcibios_scan_phb(hose); in pcibios_init()
994 if (next_busno <= hose->last_busno) in pcibios_init()
995 next_busno = hose->last_busno + 1; in pcibios_init()
1001 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { in pcibios_init()
1002 if (hose->bus) in pcibios_init()
1003 pci_bus_add_devices(hose->bus); in pcibios_init()
1013 struct pci_controller *hose, *tmp; in pci_bus_to_hose() local
1015 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) in pci_bus_to_hose()
1016 if (bus >= hose->first_busno && bus <= hose->last_busno) in pci_bus_to_hose()
1017 return hose; in pci_bus_to_hose()
1029 struct pci_controller *hose; in sys_pciconfig_iobase() local
1032 hose = pci_bus_to_hose(bus); in sys_pciconfig_iobase()
1033 if (!hose) in sys_pciconfig_iobase()
1038 return (long)hose->first_busno; in sys_pciconfig_iobase()
1040 return (long)hose->pci_mem_offset; in sys_pciconfig_iobase()
1042 return (long)hose->io_base_phys; in sys_pciconfig_iobase()
1087 fake_pci_bus(struct pci_controller *hose, int busnr) in fake_pci_bus() argument
1091 if (!hose) in fake_pci_bus()
1095 bus.sysdata = hose; in fake_pci_bus()
1096 bus.ops = hose ? hose->ops : &null_pci_ops; in fake_pci_bus()
1101 int early_##rw##_config_##size(struct pci_controller *hose, int bus, \
1104 return pci_bus_##rw##_config_##size(fake_pci_bus(hose, bus), \
1115 int early_find_capability(struct pci_controller *hose, int bus, int devfn, in EARLY_PCI_OP()
1118 return pci_bus_find_capability(fake_pci_bus(hose, bus), devfn, cap); in EARLY_PCI_OP()