Lines Matching refs:bus
512 static void pbus_assign_resources_sorted(const struct pci_bus *bus, in pbus_assign_resources_sorted() argument
519 list_for_each_entry(dev, &bus->devices, bus_list) in pbus_assign_resources_sorted()
525 void pci_setup_cardbus(struct pci_bus *bus) in pci_setup_cardbus() argument
527 struct pci_dev *bridge = bus->self; in pci_setup_cardbus()
532 &bus->busn_res); in pci_setup_cardbus()
534 res = bus->resource[0]; in pci_setup_cardbus()
535 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
548 res = bus->resource[1]; in pci_setup_cardbus()
549 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
558 res = bus->resource[2]; in pci_setup_cardbus()
559 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
568 res = bus->resource[3]; in pci_setup_cardbus()
569 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
606 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_bridge_io()
636 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_bridge_mmio()
661 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_bridge_mmio_pref()
680 static void __pci_setup_bridge(struct pci_bus *bus, unsigned long type) in __pci_setup_bridge() argument
682 struct pci_dev *bridge = bus->self; in __pci_setup_bridge()
685 &bus->busn_res); in __pci_setup_bridge()
696 pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, bus->bridge_ctl); in __pci_setup_bridge()
699 void pci_setup_bridge(struct pci_bus *bus) in pci_setup_bridge() argument
704 __pci_setup_bridge(bus, type); in pci_setup_bridge()
745 static void pci_bridge_check_ranges(struct pci_bus *bus) in pci_bridge_check_ranges() argument
749 struct pci_dev *bridge = bus->self; in pci_bridge_check_ranges()
805 static struct resource *find_free_bus_resource(struct pci_bus *bus, in find_free_bus_resource() argument
811 pci_bus_for_each_resource(bus, r, i) { in find_free_bus_resource()
857 resource_size_t __weak pcibios_window_alignment(struct pci_bus *bus, in pcibios_window_alignment() argument
867 static resource_size_t window_alignment(struct pci_bus *bus, in window_alignment() argument
879 if (bus->self->io_window_1k) in window_alignment()
885 arch_align = pcibios_window_alignment(bus, type); in window_alignment()
902 static void pbus_size_io(struct pci_bus *bus, resource_size_t min_size, in pbus_size_io() argument
906 struct resource *b_res = find_free_bus_resource(bus, IORESOURCE_IO, in pbus_size_io()
915 min_align = window_alignment(bus, IORESOURCE_IO); in pbus_size_io()
916 list_for_each_entry(dev, &bus->devices, bus_list) { in pbus_size_io()
951 dev_info(&bus->self->dev, "disabling bridge window %pR to %pR (unused)\n", in pbus_size_io()
952 b_res, &bus->busn_res); in pbus_size_io()
961 add_to_list(realloc_head, bus->self, b_res, size1-size0, in pbus_size_io()
963 dev_printk(KERN_DEBUG, &bus->self->dev, "bridge window %pR to %pR add_size %llx\n", in pbus_size_io()
964 b_res, &bus->busn_res, in pbus_size_io()
1010 static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, in pbus_size_mem() argument
1020 struct resource *b_res = find_free_bus_resource(bus, in pbus_size_mem()
1033 list_for_each_entry(dev, &bus->devices, bus_list) { in pbus_size_mem()
1090 min_align = max(min_align, window_alignment(bus, b_res->flags)); in pbus_size_mem()
1100 dev_info(&bus->self->dev, "disabling bridge window %pR to %pR (unused)\n", in pbus_size_mem()
1101 b_res, &bus->busn_res); in pbus_size_mem()
1109 add_to_list(realloc_head, bus->self, b_res, size1-size0, add_align); in pbus_size_mem()
1110 dev_printk(KERN_DEBUG, &bus->self->dev, "bridge window %pR to %pR add_size %llx add_align %llx\n", in pbus_size_mem()
1111 b_res, &bus->busn_res, in pbus_size_mem()
1127 static void pci_bus_size_cardbus(struct pci_bus *bus, in pci_bus_size_cardbus() argument
1130 struct pci_dev *bridge = bus->self; in pci_bus_size_cardbus()
1220 void __pci_bus_size_bridges(struct pci_bus *bus, struct list_head *realloc_head) in __pci_bus_size_bridges() argument
1228 list_for_each_entry(dev, &bus->devices, bus_list) { in __pci_bus_size_bridges()
1246 if (pci_is_root_bus(bus)) in __pci_bus_size_bridges()
1249 switch (bus->self->class >> 8) { in __pci_bus_size_bridges()
1255 pci_bridge_check_ranges(bus); in __pci_bus_size_bridges()
1256 if (bus->self->is_hotplug_bridge) { in __pci_bus_size_bridges()
1262 pbus_size_io(bus, realloc_head ? 0 : additional_io_size, in __pci_bus_size_bridges()
1270 b_res = &bus->self->resource[PCI_BRIDGE_RESOURCES]; in __pci_bus_size_bridges()
1275 ret = pbus_size_mem(bus, prefmask, prefmask, in __pci_bus_size_bridges()
1299 ret = pbus_size_mem(bus, prefmask, prefmask, in __pci_bus_size_bridges()
1331 pbus_size_mem(bus, mask, IORESOURCE_MEM, type2, type3, in __pci_bus_size_bridges()
1338 void pci_bus_size_bridges(struct pci_bus *bus) in pci_bus_size_bridges() argument
1340 __pci_bus_size_bridges(bus, NULL); in pci_bus_size_bridges()
1377 b = dev->bus; in pdev_assign_fixed_resources()
1385 void __pci_bus_assign_resources(const struct pci_bus *bus, in __pci_bus_assign_resources() argument
1392 pbus_assign_resources_sorted(bus, realloc_head, fail_head); in __pci_bus_assign_resources()
1394 list_for_each_entry(dev, &bus->devices, bus_list) { in __pci_bus_assign_resources()
1421 void pci_bus_assign_resources(const struct pci_bus *bus) in pci_bus_assign_resources() argument
1423 __pci_bus_assign_resources(bus, NULL, NULL); in pci_bus_assign_resources()
1457 static void pci_bridge_release_resources(struct pci_bus *bus, in pci_bridge_release_resources() argument
1460 struct pci_dev *dev = bus->self; in pci_bridge_release_resources()
1517 __pci_setup_bridge(bus, type); in pci_bridge_release_resources()
1531 static void pci_bus_release_bridge_resources(struct pci_bus *bus, in pci_bus_release_bridge_resources() argument
1538 list_for_each_entry(dev, &bus->devices, bus_list) { in pci_bus_release_bridge_resources()
1553 if (pci_is_root_bus(bus)) in pci_bus_release_bridge_resources()
1556 if ((bus->self->class >> 8) != PCI_CLASS_BRIDGE_PCI) in pci_bus_release_bridge_resources()
1560 pci_bridge_release_resources(bus, type); in pci_bus_release_bridge_resources()
1563 static void pci_bus_dump_res(struct pci_bus *bus) in pci_bus_dump_res() argument
1568 pci_bus_for_each_resource(bus, res, i) { in pci_bus_dump_res()
1572 dev_printk(KERN_DEBUG, &bus->dev, "resource %d %pR\n", i, res); in pci_bus_dump_res()
1576 static void pci_bus_dump_resources(struct pci_bus *bus) in pci_bus_dump_resources() argument
1582 pci_bus_dump_res(bus); in pci_bus_dump_resources()
1584 list_for_each_entry(dev, &bus->devices, bus_list) { in pci_bus_dump_resources()
1593 static int pci_bus_get_depth(struct pci_bus *bus) in pci_bus_get_depth() argument
1598 list_for_each_entry(child_bus, &bus->children, node) { in pci_bus_get_depth()
1651 pcibios_resource_to_bus(dev->bus, ®ion, r); in iov_resources_unassigned()
1661 static enum enable_type pci_realloc_detect(struct pci_bus *bus, in pci_realloc_detect() argument
1669 pci_walk_bus(bus, iov_resources_unassigned, &unassigned); in pci_realloc_detect()
1676 static enum enable_type pci_realloc_detect(struct pci_bus *bus, in pci_realloc_detect() argument
1688 void pci_assign_unassigned_root_bus_resources(struct pci_bus *bus) in pci_assign_unassigned_root_bus_resources() argument
1703 enable_local = pci_realloc_detect(bus, pci_realloc_enable); in pci_assign_unassigned_root_bus_resources()
1705 int max_depth = pci_bus_get_depth(bus); in pci_assign_unassigned_root_bus_resources()
1708 dev_printk(KERN_DEBUG, &bus->dev, in pci_assign_unassigned_root_bus_resources()
1722 __pci_bus_size_bridges(bus, add_list); in pci_assign_unassigned_root_bus_resources()
1725 __pci_bus_assign_resources(bus, add_list, &fail_head); in pci_assign_unassigned_root_bus_resources()
1736 dev_info(&bus->dev, "Some PCI device resources are unassigned, try booting with pci=realloc\n"); in pci_assign_unassigned_root_bus_resources()
1738 …dev_info(&bus->dev, "Automatically enabled pci realloc, if you have problem, try booting with pci=… in pci_assign_unassigned_root_bus_resources()
1744 dev_printk(KERN_DEBUG, &bus->dev, in pci_assign_unassigned_root_bus_resources()
1756 pci_bus_release_bridge_resources(fail_res->dev->bus, in pci_assign_unassigned_root_bus_resources()
1776 pci_bus_dump_resources(bus); in pci_assign_unassigned_root_bus_resources()
1822 pci_bus_release_bridge_resources(fail_res->dev->bus, in pci_assign_unassigned_bridge_resources()
1848 void pci_assign_unassigned_bus_resources(struct pci_bus *bus) in pci_assign_unassigned_bus_resources() argument
1855 list_for_each_entry(dev, &bus->devices, bus_list) in pci_assign_unassigned_bus_resources()
1860 __pci_bus_assign_resources(bus, &add_list, NULL); in pci_assign_unassigned_bus_resources()