Lines Matching refs:bridge

612 	struct pci_dev *bridge = bus->self;  in pci_setup_cardbus()  local
616 pci_info(bridge, "CardBus bridge to %pR\n", in pci_setup_cardbus()
620 pcibios_resource_to_bus(bridge->bus, &region, res); in pci_setup_cardbus()
626 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
627 pci_write_config_dword(bridge, PCI_CB_IO_BASE_0, in pci_setup_cardbus()
629 pci_write_config_dword(bridge, PCI_CB_IO_LIMIT_0, in pci_setup_cardbus()
634 pcibios_resource_to_bus(bridge->bus, &region, res); in pci_setup_cardbus()
636 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
637 pci_write_config_dword(bridge, PCI_CB_IO_BASE_1, in pci_setup_cardbus()
639 pci_write_config_dword(bridge, PCI_CB_IO_LIMIT_1, in pci_setup_cardbus()
644 pcibios_resource_to_bus(bridge->bus, &region, res); in pci_setup_cardbus()
646 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
647 pci_write_config_dword(bridge, PCI_CB_MEMORY_BASE_0, in pci_setup_cardbus()
649 pci_write_config_dword(bridge, PCI_CB_MEMORY_LIMIT_0, in pci_setup_cardbus()
654 pcibios_resource_to_bus(bridge->bus, &region, res); in pci_setup_cardbus()
656 pci_info(bridge, " bridge window %pR\n", res); in pci_setup_cardbus()
657 pci_write_config_dword(bridge, PCI_CB_MEMORY_BASE_1, in pci_setup_cardbus()
659 pci_write_config_dword(bridge, PCI_CB_MEMORY_LIMIT_1, in pci_setup_cardbus()
678 static void pci_setup_bridge_io(struct pci_dev *bridge) in pci_setup_bridge_io() argument
689 if (bridge->io_window_1k) in pci_setup_bridge_io()
693 res = &bridge->resource[PCI_BRIDGE_IO_WINDOW]; in pci_setup_bridge_io()
694 res_name = pci_resource_name(bridge, PCI_BRIDGE_IO_WINDOW); in pci_setup_bridge_io()
695 pcibios_resource_to_bus(bridge->bus, &region, res); in pci_setup_bridge_io()
697 pci_read_config_word(bridge, PCI_IO_BASE, &l); in pci_setup_bridge_io()
703 pci_info(bridge, " %s %pR\n", res_name, res); in pci_setup_bridge_io()
710 pci_write_config_dword(bridge, PCI_IO_BASE_UPPER16, 0x0000ffff); in pci_setup_bridge_io()
712 pci_write_config_word(bridge, PCI_IO_BASE, l); in pci_setup_bridge_io()
714 pci_write_config_dword(bridge, PCI_IO_BASE_UPPER16, io_upper16); in pci_setup_bridge_io()
717 static void pci_setup_bridge_mmio(struct pci_dev *bridge) in pci_setup_bridge_mmio() argument
725 res = &bridge->resource[PCI_BRIDGE_MEM_WINDOW]; in pci_setup_bridge_mmio()
726 res_name = pci_resource_name(bridge, PCI_BRIDGE_MEM_WINDOW); in pci_setup_bridge_mmio()
727 pcibios_resource_to_bus(bridge->bus, &region, res); in pci_setup_bridge_mmio()
731 pci_info(bridge, " %s %pR\n", res_name, res); in pci_setup_bridge_mmio()
735 pci_write_config_dword(bridge, PCI_MEMORY_BASE, l); in pci_setup_bridge_mmio()
738 static void pci_setup_bridge_mmio_pref(struct pci_dev *bridge) in pci_setup_bridge_mmio_pref() argument
750 pci_write_config_dword(bridge, PCI_PREF_LIMIT_UPPER32, 0); in pci_setup_bridge_mmio_pref()
754 res = &bridge->resource[PCI_BRIDGE_PREF_MEM_WINDOW]; in pci_setup_bridge_mmio_pref()
755 res_name = pci_resource_name(bridge, PCI_BRIDGE_PREF_MEM_WINDOW); in pci_setup_bridge_mmio_pref()
756 pcibios_resource_to_bus(bridge->bus, &region, res); in pci_setup_bridge_mmio_pref()
764 pci_info(bridge, " %s %pR\n", res_name, res); in pci_setup_bridge_mmio_pref()
768 pci_write_config_dword(bridge, PCI_PREF_MEMORY_BASE, l); in pci_setup_bridge_mmio_pref()
771 pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, bu); in pci_setup_bridge_mmio_pref()
772 pci_write_config_dword(bridge, PCI_PREF_LIMIT_UPPER32, lu); in pci_setup_bridge_mmio_pref()
777 struct pci_dev *bridge = bus->self; in __pci_setup_bridge() local
779 pci_info(bridge, "PCI bridge to %pR\n", &bus->busn_res); in __pci_setup_bridge()
782 pci_setup_bridge_io(bridge); in __pci_setup_bridge()
785 pci_setup_bridge_mmio(bridge); in __pci_setup_bridge()
788 pci_setup_bridge_mmio_pref(bridge); in __pci_setup_bridge()
790 pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, bus->bridge_ctl); in __pci_setup_bridge()
807 int pci_claim_bridge_resource(struct pci_dev *bridge, int i) in pci_claim_bridge_resource() argument
812 if (pci_claim_resource(bridge, i) == 0) in pci_claim_bridge_resource()
815 if ((bridge->class >> 8) != PCI_CLASS_BRIDGE_PCI) in pci_claim_bridge_resource()
818 if (!pci_bus_clip_resource(bridge, i)) in pci_claim_bridge_resource()
823 pci_setup_bridge_io(bridge); in pci_claim_bridge_resource()
826 pci_setup_bridge_mmio(bridge); in pci_claim_bridge_resource()
829 pci_setup_bridge_mmio_pref(bridge); in pci_claim_bridge_resource()
835 if (pci_claim_resource(bridge, i) == 0) in pci_claim_bridge_resource()
848 struct pci_dev *bridge = bus->self; in pci_bridge_check_ranges() local
851 b_res = &bridge->resource[PCI_BRIDGE_MEM_WINDOW]; in pci_bridge_check_ranges()
854 if (bridge->io_window) { in pci_bridge_check_ranges()
855 b_res = &bridge->resource[PCI_BRIDGE_IO_WINDOW]; in pci_bridge_check_ranges()
859 if (bridge->pref_window) { in pci_bridge_check_ranges()
860 b_res = &bridge->resource[PCI_BRIDGE_PREF_MEM_WINDOW]; in pci_bridge_check_ranges()
862 if (bridge->pref_64_window) { in pci_bridge_check_ranges()
1306 struct pci_dev *bridge = bus->self; in pci_bus_size_cardbus() local
1311 b_res = &bridge->resource[PCI_CB_BRIDGE_IO_0_WINDOW]; in pci_bus_size_cardbus()
1322 add_to_list(realloc_head, bridge, b_res, pci_cardbus_io_size, in pci_bus_size_cardbus()
1327 b_res = &bridge->resource[PCI_CB_BRIDGE_IO_1_WINDOW]; in pci_bus_size_cardbus()
1334 add_to_list(realloc_head, bridge, b_res, pci_cardbus_io_size, in pci_bus_size_cardbus()
1340 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1343 pci_write_config_word(bridge, PCI_CB_BRIDGE_CONTROL, ctrl); in pci_bus_size_cardbus()
1344 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1348 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1351 pci_write_config_word(bridge, PCI_CB_BRIDGE_CONTROL, ctrl); in pci_bus_size_cardbus()
1352 pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl); in pci_bus_size_cardbus()
1355 b_res = &bridge->resource[PCI_CB_BRIDGE_MEM_0_WINDOW]; in pci_bus_size_cardbus()
1369 add_to_list(realloc_head, bridge, b_res, in pci_bus_size_cardbus()
1378 b_res = &bridge->resource[PCI_CB_BRIDGE_MEM_1_WINDOW]; in pci_bus_size_cardbus()
1385 add_to_list(realloc_head, bridge, b_res, b_res_3_size, in pci_bus_size_cardbus()
1422 host = to_pci_host_bridge(bus->bridge); in __pci_bus_size_bridges()
1676 static void __pci_bridge_assign_resources(const struct pci_dev *bridge, in __pci_bridge_assign_resources() argument
1682 pdev_assign_resources_sorted((struct pci_dev *)bridge, in __pci_bridge_assign_resources()
1685 b = bridge->subordinate; in __pci_bridge_assign_resources()
1691 switch (bridge->class >> 8) { in __pci_bridge_assign_resources()
1701 pci_info(bridge, "not setting up bridge for bus %04x:%02x\n", in __pci_bridge_assign_resources()
1936 static void adjust_bridge_window(struct pci_dev *bridge, struct resource *res, in adjust_bridge_window() argument
1950 pci_dbg(bridge, "bridge window %pR extended by %pa\n", res, in adjust_bridge_window()
1954 pci_dbg(bridge, "bridge window %pR shrunken by %pa\n", res, in adjust_bridge_window()
2029 struct pci_dev *dev, *bridge = bus->self; in pci_bus_distribute_available_resources() local
2032 io_res = &bridge->resource[PCI_BRIDGE_IO_WINDOW]; in pci_bus_distribute_available_resources()
2033 mmio_res = &bridge->resource[PCI_BRIDGE_MEM_WINDOW]; in pci_bus_distribute_available_resources()
2034 mmio_pref_res = &bridge->resource[PCI_BRIDGE_PREF_MEM_WINDOW]; in pci_bus_distribute_available_resources()
2040 align = pci_resource_alignment(bridge, io_res); in pci_bus_distribute_available_resources()
2044 align = pci_resource_alignment(bridge, mmio_res); in pci_bus_distribute_available_resources()
2048 align = pci_resource_alignment(bridge, mmio_pref_res); in pci_bus_distribute_available_resources()
2057 adjust_bridge_window(bridge, io_res, add_list, resource_size(&io)); in pci_bus_distribute_available_resources()
2058 adjust_bridge_window(bridge, mmio_res, add_list, resource_size(&mmio)); in pci_bus_distribute_available_resources()
2059 adjust_bridge_window(bridge, mmio_pref_res, add_list, in pci_bus_distribute_available_resources()
2157 static void pci_bridge_distribute_available_resources(struct pci_dev *bridge, in pci_bridge_distribute_available_resources() argument
2162 if (!bridge->is_hotplug_bridge) in pci_bridge_distribute_available_resources()
2165 pci_dbg(bridge, "distributing available resources\n"); in pci_bridge_distribute_available_resources()
2168 available_io = bridge->resource[PCI_BRIDGE_IO_WINDOW]; in pci_bridge_distribute_available_resources()
2169 available_mmio = bridge->resource[PCI_BRIDGE_MEM_WINDOW]; in pci_bridge_distribute_available_resources()
2170 available_mmio_pref = bridge->resource[PCI_BRIDGE_PREF_MEM_WINDOW]; in pci_bridge_distribute_available_resources()
2172 pci_bus_distribute_available_resources(bridge->subordinate, in pci_bridge_distribute_available_resources()
2205 struct pci_dev *dev, *bridge = bus->self; in pci_root_bus_distribute_available_resources() local
2218 if (bridge && pci_bridge_resources_not_assigned(dev)) in pci_root_bus_distribute_available_resources()
2343 if (ACPI_HANDLE(root_bus->bridge)) in pci_assign_unassigned_resources()
2344 acpi_ioapic_add(ACPI_HANDLE(root_bus->bridge)); in pci_assign_unassigned_resources()
2348 void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge) in pci_assign_unassigned_bridge_resources() argument
2350 struct pci_bus *parent = bridge->subordinate; in pci_assign_unassigned_bridge_resources()
2365 pci_bridge_distribute_available_resources(bridge, &add_list); in pci_assign_unassigned_bridge_resources()
2367 __pci_bridge_assign_resources(bridge, &add_list, &fail_head); in pci_assign_unassigned_bridge_resources()
2385 ret = pci_reenable_device(bridge); in pci_assign_unassigned_bridge_resources()
2387 pci_err(bridge, "Error reenabling bridge (%d)\n", ret); in pci_assign_unassigned_bridge_resources()
2388 pci_set_master(bridge); in pci_assign_unassigned_bridge_resources()
2392 int pci_reassign_bridge_resources(struct pci_dev *bridge, unsigned long type) in pci_reassign_bridge_resources() argument
2405 next = bridge; in pci_reassign_bridge_resources()
2407 bridge = next; in pci_reassign_bridge_resources()
2410 struct resource *res = &bridge->resource[i]; in pci_reassign_bridge_resources()
2411 const char *res_name = pci_resource_name(bridge, i); in pci_reassign_bridge_resources()
2420 ret = add_to_list(&saved, bridge, res, 0, 0); in pci_reassign_bridge_resources()
2424 pci_info(bridge, "%s %pR: releasing\n", res_name, res); in pci_reassign_bridge_resources()
2435 next = bridge->bus ? bridge->bus->self : NULL; in pci_reassign_bridge_resources()
2443 __pci_bus_size_bridges(bridge->subordinate, &added); in pci_reassign_bridge_resources()
2444 __pci_bridge_assign_resources(bridge, &added, &failed); in pci_reassign_bridge_resources()
2455 if (bridge == dev_res->dev) in pci_reassign_bridge_resources()
2458 bridge = dev_res->dev; in pci_reassign_bridge_resources()
2459 pci_setup_bridge(bridge->subordinate); in pci_reassign_bridge_resources()
2476 bridge = dev_res->dev; in pci_reassign_bridge_resources()
2477 i = pci_resource_num(bridge, res); in pci_reassign_bridge_resources()
2481 pci_claim_resource(bridge, i); in pci_reassign_bridge_resources()
2482 pci_setup_bridge(bridge->subordinate); in pci_reassign_bridge_resources()