Lines Matching refs:bridge
506 struct pci_dev *bridge = bus->self; in pci_setup_cardbus() local
510 pci_info(bridge, "CardBus bridge to %pR\n", in pci_setup_cardbus()
514 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
520 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
521 pci_write_config_dword(bridge, PCI_CB_IO_BASE_0, in pci_setup_cardbus()
523 pci_write_config_dword(bridge, PCI_CB_IO_LIMIT_0, in pci_setup_cardbus()
528 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
530 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
531 pci_write_config_dword(bridge, PCI_CB_IO_BASE_1, in pci_setup_cardbus()
533 pci_write_config_dword(bridge, PCI_CB_IO_LIMIT_1, in pci_setup_cardbus()
538 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
540 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
541 pci_write_config_dword(bridge, PCI_CB_MEMORY_BASE_0, in pci_setup_cardbus()
543 pci_write_config_dword(bridge, PCI_CB_MEMORY_LIMIT_0, in pci_setup_cardbus()
548 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_cardbus()
550 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
551 pci_write_config_dword(bridge, PCI_CB_MEMORY_BASE_1, in pci_setup_cardbus()
553 pci_write_config_dword(bridge, PCI_CB_MEMORY_LIMIT_1, in pci_setup_cardbus()
572 static void pci_setup_bridge_io(struct pci_dev *bridge) in pci_setup_bridge_io() argument
582 if (bridge->io_window_1k) in pci_setup_bridge_io()
586 res = &bridge->resource[PCI_BRIDGE_RESOURCES + 0]; in pci_setup_bridge_io()
587 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_bridge_io()
589 pci_read_config_word(bridge, PCI_IO_BASE, &l); in pci_setup_bridge_io()
595 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_bridge_io()
602 pci_write_config_dword(bridge, PCI_IO_BASE_UPPER16, 0x0000ffff); in pci_setup_bridge_io()
604 pci_write_config_word(bridge, PCI_IO_BASE, l); in pci_setup_bridge_io()
606 pci_write_config_dword(bridge, PCI_IO_BASE_UPPER16, io_upper16); in pci_setup_bridge_io()
609 static void pci_setup_bridge_mmio(struct pci_dev *bridge) in pci_setup_bridge_mmio() argument
616 res = &bridge->resource[PCI_BRIDGE_RESOURCES + 1]; in pci_setup_bridge_mmio()
617 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_bridge_mmio()
621 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_bridge_mmio()
625 pci_write_config_dword(bridge, PCI_MEMORY_BASE, l); in pci_setup_bridge_mmio()
628 static void pci_setup_bridge_mmio_pref(struct pci_dev *bridge) in pci_setup_bridge_mmio_pref() argument
639 pci_write_config_dword(bridge, PCI_PREF_LIMIT_UPPER32, 0); in pci_setup_bridge_mmio_pref()
643 res = &bridge->resource[PCI_BRIDGE_RESOURCES + 2]; in pci_setup_bridge_mmio_pref()
644 pcibios_resource_to_bus(bridge->bus, ®ion, res); in pci_setup_bridge_mmio_pref()
652 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_bridge_mmio_pref()
656 pci_write_config_dword(bridge, PCI_PREF_MEMORY_BASE, l); in pci_setup_bridge_mmio_pref()
659 pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, bu); in pci_setup_bridge_mmio_pref()
660 pci_write_config_dword(bridge, PCI_PREF_LIMIT_UPPER32, lu); in pci_setup_bridge_mmio_pref()
665 struct pci_dev *bridge = bus->self; in __pci_setup_bridge() local
667 pci_info(bridge, "PCI bridge to %pR\n", in __pci_setup_bridge()
671 pci_setup_bridge_io(bridge); in __pci_setup_bridge()
674 pci_setup_bridge_mmio(bridge); in __pci_setup_bridge()
677 pci_setup_bridge_mmio_pref(bridge); in __pci_setup_bridge()
679 pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, bus->bridge_ctl); in __pci_setup_bridge()
696 int pci_claim_bridge_resource(struct pci_dev *bridge, int i) in pci_claim_bridge_resource() argument
701 if (pci_claim_resource(bridge, i) == 0) in pci_claim_bridge_resource()
704 if ((bridge->class >> 8) != PCI_CLASS_BRIDGE_PCI) in pci_claim_bridge_resource()
707 if (!pci_bus_clip_resource(bridge, i)) in pci_claim_bridge_resource()
712 pci_setup_bridge_io(bridge); in pci_claim_bridge_resource()
715 pci_setup_bridge_mmio(bridge); in pci_claim_bridge_resource()
718 pci_setup_bridge_mmio_pref(bridge); in pci_claim_bridge_resource()
724 if (pci_claim_resource(bridge, i) == 0) in pci_claim_bridge_resource()
737 struct pci_dev *bridge = bus->self; in pci_bridge_check_ranges() local
738 struct resource *b_res = &bridge->resource[PCI_BRIDGE_RESOURCES]; in pci_bridge_check_ranges()
742 if (bridge->io_window) in pci_bridge_check_ranges()
745 if (bridge->pref_window) { in pci_bridge_check_ranges()
747 if (bridge->pref_64_window) { in pci_bridge_check_ranges()
1091 struct pci_dev *bridge = bus->self; in pci_bus_size_cardbus() local
1092 struct resource *b_res = &bridge->resource[PCI_BRIDGE_RESOURCES]; in pci_bus_size_cardbus()
1107 add_to_list(realloc_head, bridge, b_res, pci_cardbus_io_size, in pci_bus_size_cardbus()
1119 add_to_list(realloc_head, bridge, b_res+1, pci_cardbus_io_size, in pci_bus_size_cardbus()
1125 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1128 pci_write_config_word(bridge, PCI_CB_BRIDGE_CONTROL, ctrl); in pci_bus_size_cardbus()
1129 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1133 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1136 pci_write_config_word(bridge, PCI_CB_BRIDGE_CONTROL, ctrl); in pci_bus_size_cardbus()
1137 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1153 add_to_list(realloc_head, bridge, b_res+2, in pci_bus_size_cardbus()
1169 add_to_list(realloc_head, bridge, b_res+3, b_res_3_size, in pci_bus_size_cardbus()
1450 static void __pci_bridge_assign_resources(const struct pci_dev *bridge, in __pci_bridge_assign_resources() argument
1456 pdev_assign_resources_sorted((struct pci_dev *)bridge, in __pci_bridge_assign_resources()
1459 b = bridge->subordinate; in __pci_bridge_assign_resources()
1465 switch (bridge->class >> 8) { in __pci_bridge_assign_resources()
1475 pci_info(bridge, "not setting up bridge for bus %04x:%02x\n", in __pci_bridge_assign_resources()
1812 if (ACPI_HANDLE(root_bus->bridge)) in pci_assign_unassigned_resources()
1813 acpi_ioapic_add(ACPI_HANDLE(root_bus->bridge)); in pci_assign_unassigned_resources()
1817 static void extend_bridge_window(struct pci_dev *bridge, struct resource *res, in extend_bridge_window() argument
1838 pci_dbg(bridge, "bridge window %pR extended by %pa\n", res, in extend_bridge_window()
1851 struct pci_dev *dev, *bridge = bus->self; in pci_bus_distribute_available_resources() local
1853 io_res = &bridge->resource[PCI_BRIDGE_RESOURCES + 0]; in pci_bus_distribute_available_resources()
1854 mmio_res = &bridge->resource[PCI_BRIDGE_RESOURCES + 1]; in pci_bus_distribute_available_resources()
1855 mmio_pref_res = &bridge->resource[PCI_BRIDGE_RESOURCES + 2]; in pci_bus_distribute_available_resources()
1863 extend_bridge_window(bridge, io_res, add_list, available_io); in pci_bus_distribute_available_resources()
1864 extend_bridge_window(bridge, mmio_res, add_list, available_mmio); in pci_bus_distribute_available_resources()
1865 extend_bridge_window(bridge, mmio_pref_res, add_list, in pci_bus_distribute_available_resources()
1948 align = pci_resource_alignment(bridge, io_res); in pci_bus_distribute_available_resources()
1953 align = pci_resource_alignment(bridge, mmio_res); in pci_bus_distribute_available_resources()
1958 align = pci_resource_alignment(bridge, mmio_pref_res); in pci_bus_distribute_available_resources()
1968 static void pci_bridge_distribute_available_resources(struct pci_dev *bridge, in pci_bridge_distribute_available_resources() argument
1974 if (!bridge->is_hotplug_bridge) in pci_bridge_distribute_available_resources()
1978 res = &bridge->resource[PCI_BRIDGE_RESOURCES + 0]; in pci_bridge_distribute_available_resources()
1980 res = &bridge->resource[PCI_BRIDGE_RESOURCES + 1]; in pci_bridge_distribute_available_resources()
1982 res = &bridge->resource[PCI_BRIDGE_RESOURCES + 2]; in pci_bridge_distribute_available_resources()
1985 pci_bus_distribute_available_resources(bridge->subordinate, in pci_bridge_distribute_available_resources()
1991 void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge) in pci_assign_unassigned_bridge_resources() argument
1993 struct pci_bus *parent = bridge->subordinate; in pci_assign_unassigned_bridge_resources()
2010 pci_bridge_distribute_available_resources(bridge, &add_list); in pci_assign_unassigned_bridge_resources()
2012 __pci_bridge_assign_resources(bridge, &add_list, &fail_head); in pci_assign_unassigned_bridge_resources()
2052 retval = pci_reenable_device(bridge); in pci_assign_unassigned_bridge_resources()
2054 pci_err(bridge, "Error reenabling bridge (%d)\n", retval); in pci_assign_unassigned_bridge_resources()
2055 pci_set_master(bridge); in pci_assign_unassigned_bridge_resources()
2059 int pci_reassign_bridge_resources(struct pci_dev *bridge, unsigned long type) in pci_reassign_bridge_resources() argument
2070 next = bridge; in pci_reassign_bridge_resources()
2072 bridge = next; in pci_reassign_bridge_resources()
2075 struct resource *res = &bridge->resource[i]; in pci_reassign_bridge_resources()
2084 ret = add_to_list(&saved, bridge, res, 0, 0); in pci_reassign_bridge_resources()
2088 pci_info(bridge, "BAR %d: releasing %pR\n", in pci_reassign_bridge_resources()
2100 next = bridge->bus ? bridge->bus->self : NULL; in pci_reassign_bridge_resources()
2106 __pci_bus_size_bridges(bridge->subordinate, &added); in pci_reassign_bridge_resources()
2107 __pci_bridge_assign_resources(bridge, &added, &failed); in pci_reassign_bridge_resources()
2117 if (bridge == dev_res->dev) in pci_reassign_bridge_resources()
2120 bridge = dev_res->dev; in pci_reassign_bridge_resources()
2121 pci_setup_bridge(bridge->subordinate); in pci_reassign_bridge_resources()
2142 bridge = dev_res->dev; in pci_reassign_bridge_resources()
2143 i = res - bridge->resource; in pci_reassign_bridge_resources()
2149 pci_claim_resource(bridge, i); in pci_reassign_bridge_resources()
2150 pci_setup_bridge(bridge->subordinate); in pci_reassign_bridge_resources()