Lines Matching refs:bridge

91 	put_device(pci_bus->bridge);  in release_pcibus_dev()
346 static void pci_read_bridge_windows(struct pci_dev *bridge) in pci_read_bridge_windows() argument
351 pci_read_config_word(bridge, PCI_IO_BASE, &io); in pci_read_bridge_windows()
353 pci_write_config_word(bridge, PCI_IO_BASE, 0xe0f0); in pci_read_bridge_windows()
354 pci_read_config_word(bridge, PCI_IO_BASE, &io); in pci_read_bridge_windows()
355 pci_write_config_word(bridge, PCI_IO_BASE, 0x0); in pci_read_bridge_windows()
358 bridge->io_window = 1; in pci_read_bridge_windows()
365 if (bridge->vendor == PCI_VENDOR_ID_DEC && bridge->device == 0x0001) in pci_read_bridge_windows()
368 pci_read_config_dword(bridge, PCI_PREF_MEMORY_BASE, &pmem); in pci_read_bridge_windows()
370 pci_write_config_dword(bridge, PCI_PREF_MEMORY_BASE, in pci_read_bridge_windows()
372 pci_read_config_dword(bridge, PCI_PREF_MEMORY_BASE, &pmem); in pci_read_bridge_windows()
373 pci_write_config_dword(bridge, PCI_PREF_MEMORY_BASE, 0x0); in pci_read_bridge_windows()
378 bridge->pref_window = 1; in pci_read_bridge_windows()
387 pci_read_config_dword(bridge, PCI_PREF_BASE_UPPER32, &pmem); in pci_read_bridge_windows()
388 pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, in pci_read_bridge_windows()
390 pci_read_config_dword(bridge, PCI_PREF_BASE_UPPER32, &tmp); in pci_read_bridge_windows()
391 pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, pmem); in pci_read_bridge_windows()
393 bridge->pref_64_window = 1; in pci_read_bridge_windows()
569 struct pci_host_bridge *bridge = to_pci_host_bridge(dev); in devm_pci_release_host_bridge_dev() local
571 if (bridge->release_fn) in devm_pci_release_host_bridge_dev()
572 bridge->release_fn(bridge); in devm_pci_release_host_bridge_dev()
574 pci_free_resource_list(&bridge->windows); in devm_pci_release_host_bridge_dev()
583 static void pci_init_host_bridge(struct pci_host_bridge *bridge) in pci_init_host_bridge() argument
585 INIT_LIST_HEAD(&bridge->windows); in pci_init_host_bridge()
586 INIT_LIST_HEAD(&bridge->dma_ranges); in pci_init_host_bridge()
594 bridge->native_aer = 1; in pci_init_host_bridge()
595 bridge->native_pcie_hotplug = 1; in pci_init_host_bridge()
596 bridge->native_shpc_hotplug = 1; in pci_init_host_bridge()
597 bridge->native_pme = 1; in pci_init_host_bridge()
598 bridge->native_ltr = 1; in pci_init_host_bridge()
603 struct pci_host_bridge *bridge; in pci_alloc_host_bridge() local
605 bridge = kzalloc(sizeof(*bridge) + priv, GFP_KERNEL); in pci_alloc_host_bridge()
606 if (!bridge) in pci_alloc_host_bridge()
609 pci_init_host_bridge(bridge); in pci_alloc_host_bridge()
610 bridge->dev.release = pci_release_host_bridge_dev; in pci_alloc_host_bridge()
612 return bridge; in pci_alloc_host_bridge()
619 struct pci_host_bridge *bridge; in devm_pci_alloc_host_bridge() local
621 bridge = devm_kzalloc(dev, sizeof(*bridge) + priv, GFP_KERNEL); in devm_pci_alloc_host_bridge()
622 if (!bridge) in devm_pci_alloc_host_bridge()
625 pci_init_host_bridge(bridge); in devm_pci_alloc_host_bridge()
626 bridge->dev.release = devm_pci_release_host_bridge_dev; in devm_pci_alloc_host_bridge()
628 return bridge; in devm_pci_alloc_host_bridge()
632 void pci_free_host_bridge(struct pci_host_bridge *bridge) in pci_free_host_bridge() argument
634 pci_free_resource_list(&bridge->windows); in pci_free_host_bridge()
635 pci_free_resource_list(&bridge->dma_ranges); in pci_free_host_bridge()
637 kfree(bridge); in pci_free_host_bridge()
718 struct pci_dev *bridge = bus->self; in pci_set_bus_speed() local
721 pos = pci_find_capability(bridge, PCI_CAP_ID_AGP); in pci_set_bus_speed()
723 pos = pci_find_capability(bridge, PCI_CAP_ID_AGP3); in pci_set_bus_speed()
727 pci_read_config_dword(bridge, pos + PCI_AGP_STATUS, &agpstat); in pci_set_bus_speed()
730 pci_read_config_dword(bridge, pos + PCI_AGP_COMMAND, &agpcmd); in pci_set_bus_speed()
734 pos = pci_find_capability(bridge, PCI_CAP_ID_PCIX); in pci_set_bus_speed()
739 pci_read_config_word(bridge, pos + PCI_X_BRIDGE_SSTATUS, in pci_set_bus_speed()
762 if (pci_is_pcie(bridge)) { in pci_set_bus_speed()
766 pcie_capability_read_dword(bridge, PCI_EXP_LNKCAP, &linkcap); in pci_set_bus_speed()
768 bridge->link_active_reporting = !!(linkcap & PCI_EXP_LNKCAP_DLLLARC); in pci_set_bus_speed()
770 pcie_capability_read_word(bridge, PCI_EXP_LNKSTA, &linksta); in pci_set_bus_speed()
825 static int pci_register_host_bridge(struct pci_host_bridge *bridge) in pci_register_host_bridge() argument
827 struct device *parent = bridge->dev.parent; in pci_register_host_bridge()
841 bridge->bus = bus; in pci_register_host_bridge()
844 list_splice_init(&bridge->windows, &resources); in pci_register_host_bridge()
845 bus->sysdata = bridge->sysdata; in pci_register_host_bridge()
846 bus->msi = bridge->msi; in pci_register_host_bridge()
847 bus->ops = bridge->ops; in pci_register_host_bridge()
848 bus->number = bus->busn_res.start = bridge->busnr; in pci_register_host_bridge()
853 b = pci_find_bus(pci_domain_nr(bus), bridge->busnr); in pci_register_host_bridge()
861 dev_set_name(&bridge->dev, "pci%04x:%02x", pci_domain_nr(bus), in pci_register_host_bridge()
862 bridge->busnr); in pci_register_host_bridge()
864 err = pcibios_root_bridge_prepare(bridge); in pci_register_host_bridge()
868 err = device_register(&bridge->dev); in pci_register_host_bridge()
870 put_device(&bridge->dev); in pci_register_host_bridge()
872 bus->bridge = get_device(&bridge->dev); in pci_register_host_bridge()
873 device_enable_async_suspend(bus->bridge); in pci_register_host_bridge()
878 set_dev_node(bus->bridge, pcibus_to_node(bus)); in pci_register_host_bridge()
881 bus->dev.parent = bus->bridge; in pci_register_host_bridge()
902 list_move_tail(&window->node, &bridge->windows); in pci_register_host_bridge()
933 put_device(&bridge->dev); in pci_register_host_bridge()
934 device_unregister(&bridge->dev); in pci_register_host_bridge()
941 static bool pci_bridge_child_ext_cfg_accessible(struct pci_dev *bridge) in pci_bridge_child_ext_cfg_accessible() argument
950 if (bridge->bus->bus_flags & PCI_BUS_FLAGS_NO_EXTCFG) in pci_bridge_child_ext_cfg_accessible()
958 if (pci_is_pcie(bridge) && in pci_bridge_child_ext_cfg_accessible()
959 (pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT || in pci_bridge_child_ext_cfg_accessible()
960 pci_pcie_type(bridge) == PCI_EXP_TYPE_UPSTREAM || in pci_bridge_child_ext_cfg_accessible()
961 pci_pcie_type(bridge) == PCI_EXP_TYPE_DOWNSTREAM)) in pci_bridge_child_ext_cfg_accessible()
972 pos = pci_find_capability(bridge, PCI_CAP_ID_PCIX); in pci_bridge_child_ext_cfg_accessible()
976 pci_read_config_dword(bridge, pos + PCI_X_STATUS, &status); in pci_bridge_child_ext_cfg_accessible()
981 struct pci_dev *bridge, int busnr) in pci_alloc_child_bus() argument
1010 if (!bridge) { in pci_alloc_child_bus()
1011 child->dev.parent = parent->bridge; in pci_alloc_child_bus()
1015 child->self = bridge; in pci_alloc_child_bus()
1016 child->bridge = get_device(&bridge->dev); in pci_alloc_child_bus()
1017 child->dev.parent = child->bridge; in pci_alloc_child_bus()
1026 if (!pci_bridge_child_ext_cfg_accessible(bridge)) { in pci_alloc_child_bus()
1033 child->resource[i] = &bridge->resource[PCI_BRIDGE_RESOURCES+i]; in pci_alloc_child_bus()
1036 bridge->subordinate = child; in pci_alloc_child_bus()
1726 dev->dev.parent = dev->bus->bridge; in pci_setup_device()
1882 struct pci_dev *bridge = pci_upstream_bridge(dev); in pci_configure_mps() local
1885 if (!pci_is_pcie(dev) || !bridge || !pci_is_pcie(bridge)) in pci_configure_mps()
1893 p_mps = pcie_get_mps(bridge); in pci_configure_mps()
1900 mps, pci_name(bridge), p_mps); in pci_configure_mps()
1912 if (mpss < p_mps && pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT) { in pci_configure_mps()
1913 pcie_set_mps(bridge, mpss); in pci_configure_mps()
1915 mpss, p_mps, 128 << bridge->pcie_mpss); in pci_configure_mps()
1916 p_mps = pcie_get_mps(bridge); in pci_configure_mps()
2022 struct pci_dev *bridge; in pci_configure_ltr() local
2039 bridge = pci_upstream_bridge(dev); in pci_configure_ltr()
2040 if (bridge && bridge->ltr_path) in pci_configure_ltr()
2055 ((bridge = pci_upstream_bridge(dev)) && in pci_configure_ltr()
2056 bridge->ltr_path)) { in pci_configure_ltr()
2067 struct pci_dev *bridge; in pci_configure_eetlp_prefix() local
2083 bridge = pci_upstream_bridge(dev); in pci_configure_eetlp_prefix()
2084 if (bridge && bridge->eetlp_prefix_path) in pci_configure_eetlp_prefix()
2236 struct pci_dev *bridge = bus->self; in pci_bus_read_dev_vendor_id() local
2242 if (bridge && bridge->vendor == PCI_VENDOR_ID_IDT && in pci_bus_read_dev_vendor_id()
2243 bridge->device == 0x80b5) in pci_bus_read_dev_vendor_id()
2485 struct pci_dev *bridge = bus->self; in only_one_child() local
2499 if (bridge && pci_is_pcie(bridge) && pcie_downstream_port(bridge)) in only_one_child()
2882 int __weak pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) in pcibios_root_bridge_prepare() argument
2899 struct pci_host_bridge *bridge; in pci_create_root_bus() local
2901 bridge = pci_alloc_host_bridge(0); in pci_create_root_bus()
2902 if (!bridge) in pci_create_root_bus()
2905 bridge->dev.parent = parent; in pci_create_root_bus()
2907 list_splice_init(resources, &bridge->windows); in pci_create_root_bus()
2908 bridge->sysdata = sysdata; in pci_create_root_bus()
2909 bridge->busnr = bus; in pci_create_root_bus()
2910 bridge->ops = ops; in pci_create_root_bus()
2912 error = pci_register_host_bridge(bridge); in pci_create_root_bus()
2916 return bridge->bus; in pci_create_root_bus()
2919 kfree(bridge); in pci_create_root_bus()
2924 int pci_host_probe(struct pci_host_bridge *bridge) in pci_host_probe() argument
2929 ret = pci_scan_root_bus_bridge(bridge); in pci_host_probe()
2931 dev_err(bridge->dev.parent, "Scanning root bridge failed"); in pci_host_probe()
2935 bus = bridge->bus; in pci_host_probe()
3018 int pci_scan_root_bus_bridge(struct pci_host_bridge *bridge) in pci_scan_root_bus_bridge() argument
3025 if (!bridge) in pci_scan_root_bus_bridge()
3028 resource_list_for_each_entry(window, &bridge->windows) in pci_scan_root_bus_bridge()
3034 ret = pci_register_host_bridge(bridge); in pci_scan_root_bus_bridge()
3038 b = bridge->bus; in pci_scan_root_bus_bridge()
3039 bus = bridge->busnr; in pci_scan_root_bus_bridge()
3121 unsigned int pci_rescan_bus_bridge_resize(struct pci_dev *bridge) in pci_rescan_bus_bridge_resize() argument
3124 struct pci_bus *bus = bridge->subordinate; in pci_rescan_bus_bridge_resize()
3128 pci_assign_unassigned_bridge_resources(bridge); in pci_rescan_bus_bridge_resize()