Lines Matching refs:bus
281 pcibios_bus_to_resource(dev->bus, res, ®ion); in __pci_read_base()
282 pcibios_resource_to_bus(dev->bus, &inverted_region, res); in __pci_read_base()
373 pcibios_bus_to_resource(dev->bus, res, ®ion); in pci_read_bridge_io()
395 pcibios_bus_to_resource(dev->bus, res, ®ion); in pci_read_bridge_mmio()
448 pcibios_bus_to_resource(dev->bus, res, ®ion); in pci_read_bridge_mmio_pref()
530 bridge->bus = b; in pci_alloc_host_bridge()
572 void pcie_update_link_speed(struct pci_bus *bus, u16 linksta) in pcie_update_link_speed() argument
574 bus->cur_bus_speed = pcie_link_speed[linksta & PCI_EXP_LNKSTA_CLS]; in pcie_update_link_speed()
609 static void pci_set_bus_speed(struct pci_bus *bus) in pci_set_bus_speed() argument
611 struct pci_dev *bridge = bus->self; in pci_set_bus_speed()
621 bus->max_bus_speed = agp_speed(agpstat & 8, agpstat & 7); in pci_set_bus_speed()
624 bus->cur_bus_speed = agp_speed(agpstat & 8, agpcmd & 7); in pci_set_bus_speed()
648 bus->max_bus_speed = max; in pci_set_bus_speed()
649 bus->cur_bus_speed = pcix_bus_speed[ in pci_set_bus_speed()
660 bus->max_bus_speed = pcie_link_speed[linkcap & PCI_EXP_LNKCAP_SLS]; in pci_set_bus_speed()
663 pcie_update_link_speed(bus, linksta); in pci_set_bus_speed()
767 int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, int pass) in pci_scan_bridge() argument
784 if (!primary && (primary != bus->number) && secondary && subordinate) { in pci_scan_bridge()
786 primary = bus->number; in pci_scan_bridge()
791 (primary != bus->number || secondary <= bus->number || in pci_scan_bridge()
822 child = pci_find_bus(pci_domain_nr(bus), secondary); in pci_scan_bridge()
824 child = pci_add_new_bus(bus, dev, secondary); in pci_scan_bridge()
863 child = pci_find_bus(pci_domain_nr(bus), max+1); in pci_scan_bridge()
865 child = pci_add_new_bus(bus, dev, max+1); in pci_scan_bridge()
900 struct pci_bus *parent = bus; in pci_scan_bridge()
901 if (pci_find_bus(pci_domain_nr(bus), in pci_scan_bridge()
933 pci_domain_nr(bus), child->number); in pci_scan_bridge()
936 while (bus->parent) { in pci_scan_bridge()
937 if ((child->busn_res.end > bus->busn_res.end) || in pci_scan_bridge()
938 (child->number > bus->busn_res.end) || in pci_scan_bridge()
939 (child->number < bus->number) || in pci_scan_bridge()
940 (child->busn_res.end < bus->number)) { in pci_scan_bridge()
943 (bus->number > child->busn_res.end && in pci_scan_bridge()
944 bus->busn_res.end < child->number) ? in pci_scan_bridge()
946 bus->self->transparent ? " transparent" : "", in pci_scan_bridge()
947 dev_name(&bus->dev), in pci_scan_bridge()
948 &bus->busn_res); in pci_scan_bridge()
950 bus = bus->parent; in pci_scan_bridge()
1132 dev->sysdata = dev->bus->sysdata; in pci_setup_device()
1133 dev->dev.parent = dev->bus->bridge; in pci_setup_device()
1134 dev->dev.bus = &pci_bus_type; in pci_setup_device()
1140 list_for_each_entry(slot, &dev->bus->slots, list) in pci_setup_device()
1148 dev_set_name(&dev->dev, "%04x:%02x:%02x.%d", pci_domain_nr(dev->bus), in pci_setup_device()
1149 dev->bus->number, PCI_SLOT(dev->devfn), in pci_setup_device()
1203 pcibios_bus_to_resource(dev->bus, res, ®ion); in pci_setup_device()
1210 pcibios_bus_to_resource(dev->bus, res, ®ion); in pci_setup_device()
1219 pcibios_bus_to_resource(dev->bus, res, ®ion); in pci_setup_device()
1226 pcibios_bus_to_resource(dev->bus, res, ®ion); in pci_setup_device()
1427 pci_bus_put(pci_dev->bus); in pci_release_dev()
1432 struct pci_dev *pci_alloc_dev(struct pci_bus *bus) in pci_alloc_dev() argument
1442 dev->bus = pci_bus_get(bus); in pci_alloc_dev()
1448 bool pci_bus_read_dev_vendor_id(struct pci_bus *bus, int devfn, u32 *l, in pci_bus_read_dev_vendor_id() argument
1453 if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, l)) in pci_bus_read_dev_vendor_id()
1473 if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, l)) in pci_bus_read_dev_vendor_id()
1478 pci_domain_nr(bus), bus->number, PCI_SLOT(devfn), in pci_bus_read_dev_vendor_id()
1492 static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn) in pci_scan_device() argument
1497 if (!pci_bus_read_dev_vendor_id(bus, devfn, &l, 60*1000)) in pci_scan_device()
1500 dev = pci_alloc_dev(bus); in pci_scan_device()
1511 pci_bus_put(dev->bus); in pci_scan_device()
1543 void pci_device_add(struct pci_dev *dev, struct pci_bus *bus) in pci_device_add() argument
1552 set_dev_node(&dev->dev, pcibus_to_node(bus)); in pci_device_add()
1578 list_add_tail(&dev->bus_list, &bus->devices); in pci_device_add()
1590 struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn) in pci_scan_single_device() argument
1594 dev = pci_get_slot(bus, devfn); in pci_scan_single_device()
1600 dev = pci_scan_device(bus, devfn); in pci_scan_single_device()
1604 pci_device_add(dev, bus); in pci_scan_single_device()
1610 static unsigned next_fn(struct pci_bus *bus, struct pci_dev *dev, unsigned fn) in next_fn() argument
1616 if (pci_ari_enabled(bus)) { in next_fn()
1638 static int only_one_child(struct pci_bus *bus) in only_one_child() argument
1640 struct pci_dev *parent = bus->self; in only_one_child()
1663 int pci_scan_slot(struct pci_bus *bus, int devfn) in pci_scan_slot() argument
1668 if (only_one_child(bus) && (devfn > 0)) in pci_scan_slot()
1671 dev = pci_scan_single_device(bus, devfn); in pci_scan_slot()
1677 for (fn = next_fn(bus, dev, 0); fn > 0; fn = next_fn(bus, dev, fn)) { in pci_scan_slot()
1678 dev = pci_scan_single_device(bus, devfn + fn); in pci_scan_slot()
1687 if (bus->self && nr) in pci_scan_slot()
1688 pcie_aspm_init_link_state(bus->self); in pci_scan_slot()
1734 dev->bus->self) in pcie_write_mps()
1747 mps = min(mps, pcie_get_mps(dev->bus->self)); in pcie_write_mps()
1792 struct pci_dev *bridge = dev->bus->self; in pcie_bus_detect_mps()
1835 void pcie_bus_configure_settings(struct pci_bus *bus) in pcie_bus_configure_settings() argument
1839 if (!bus->self) in pcie_bus_configure_settings()
1842 if (!pci_is_pcie(bus->self)) in pcie_bus_configure_settings()
1853 smpss = bus->self->pcie_mpss; in pcie_bus_configure_settings()
1855 pcie_find_smpss(bus->self, &smpss); in pcie_bus_configure_settings()
1856 pci_walk_bus(bus, pcie_find_smpss, &smpss); in pcie_bus_configure_settings()
1859 pcie_bus_configure_set(bus->self, &smpss); in pcie_bus_configure_settings()
1860 pci_walk_bus(bus, pcie_bus_configure_set, &smpss); in pcie_bus_configure_settings()
1864 unsigned int pci_scan_child_bus(struct pci_bus *bus) in pci_scan_child_bus() argument
1866 unsigned int devfn, pass, max = bus->busn_res.start; in pci_scan_child_bus()
1869 dev_dbg(&bus->dev, "scanning bus\n"); in pci_scan_child_bus()
1873 pci_scan_slot(bus, devfn); in pci_scan_child_bus()
1876 max += pci_iov_bus_range(bus); in pci_scan_child_bus()
1882 if (!bus->is_added) { in pci_scan_child_bus()
1883 dev_dbg(&bus->dev, "fixups for bus\n"); in pci_scan_child_bus()
1884 pcibios_fixup_bus(bus); in pci_scan_child_bus()
1885 bus->is_added = 1; in pci_scan_child_bus()
1889 list_for_each_entry(dev, &bus->devices, bus_list) { in pci_scan_child_bus()
1891 max = pci_scan_bridge(bus, dev, max, pass); in pci_scan_child_bus()
1901 dev_dbg(&bus->dev, "bus scan returning with max=%02x\n", max); in pci_scan_child_bus()
1918 void __weak pcibios_add_bus(struct pci_bus *bus) in pcibios_add_bus() argument
1922 void __weak pcibios_remove_bus(struct pci_bus *bus) in pcibios_remove_bus() argument
1926 struct pci_bus *pci_create_root_bus(struct device *parent, int bus, in pci_create_root_bus() argument
1944 b->number = b->busn_res.start = bus; in pci_create_root_bus()
1946 b2 = pci_find_bus(pci_domain_nr(b), bus); in pci_create_root_bus()
1959 dev_set_name(&bridge->dev, "pci%04x:%02x", pci_domain_nr(b), bus); in pci_create_root_bus()
1980 dev_set_name(&b->dev, "%04x:%02x", pci_domain_nr(b), bus); in pci_create_root_bus()
2001 pci_bus_insert_busn_res(b, bus, res->end); in pci_create_root_bus()
2032 int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max) in pci_bus_insert_busn_res() argument
2037 res->start = bus; in pci_bus_insert_busn_res()
2095 struct pci_bus *pci_scan_root_bus(struct device *parent, int bus, in pci_scan_root_bus() argument
2109 b = pci_create_root_bus(parent, bus, ops, sysdata, resources); in pci_scan_root_bus()
2116 bus); in pci_scan_root_bus()
2117 pci_bus_insert_busn_res(b, bus, 255); in pci_scan_root_bus()
2131 int bus, struct pci_ops *ops, void *sysdata) in pci_scan_bus_parented() argument
2139 b = pci_create_root_bus(parent, bus, ops, sysdata, &resources); in pci_scan_bus_parented()
2148 struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, in pci_scan_bus() argument
2157 b = pci_create_root_bus(NULL, bus, ops, sysdata, &resources); in pci_scan_bus()
2181 struct pci_bus *bus = bridge->subordinate; in pci_rescan_bus_bridge_resize() local
2183 max = pci_scan_child_bus(bus); in pci_rescan_bus_bridge_resize()
2187 pci_bus_add_devices(bus); in pci_rescan_bus_bridge_resize()
2201 unsigned int pci_rescan_bus(struct pci_bus *bus) in pci_rescan_bus() argument
2205 max = pci_scan_child_bus(bus); in pci_rescan_bus()
2206 pci_assign_unassigned_bus_resources(bus); in pci_rescan_bus()
2207 pci_bus_add_devices(bus); in pci_rescan_bus()
2237 if (pci_domain_nr(a->bus) < pci_domain_nr(b->bus)) return -1; in pci_sort_bf_cmp()
2238 else if (pci_domain_nr(a->bus) > pci_domain_nr(b->bus)) return 1; in pci_sort_bf_cmp()
2240 if (a->bus->number < b->bus->number) return -1; in pci_sort_bf_cmp()
2241 else if (a->bus->number > b->bus->number) return 1; in pci_sort_bf_cmp()