Lines Matching refs:child
342 static void pci_read_bridge_io(struct pci_bus *child) in pci_read_bridge_io() argument
344 struct pci_dev *dev = child->self; in pci_read_bridge_io()
358 res = child->resource[0]; in pci_read_bridge_io()
382 static void pci_read_bridge_mmio(struct pci_bus *child) in pci_read_bridge_mmio() argument
384 struct pci_dev *dev = child->self; in pci_read_bridge_mmio()
390 res = child->resource[1]; in pci_read_bridge_mmio()
404 static void pci_read_bridge_mmio_pref(struct pci_bus *child) in pci_read_bridge_mmio_pref() argument
406 struct pci_dev *dev = child->self; in pci_read_bridge_mmio_pref()
413 res = child->resource[2]; in pci_read_bridge_mmio_pref()
457 void pci_read_bridge_bases(struct pci_bus *child) in pci_read_bridge_bases() argument
459 struct pci_dev *dev = child->self; in pci_read_bridge_bases()
463 if (pci_is_root_bus(child)) /* It's a host bus, nothing to read */ in pci_read_bridge_bases()
467 &child->busn_res, in pci_read_bridge_bases()
470 pci_bus_remove_resources(child); in pci_read_bridge_bases()
472 child->resource[i] = &dev->resource[PCI_BRIDGE_RESOURCES+i]; in pci_read_bridge_bases()
474 pci_read_bridge_io(child); in pci_read_bridge_bases()
475 pci_read_bridge_mmio(child); in pci_read_bridge_bases()
476 pci_read_bridge_mmio_pref(child); in pci_read_bridge_bases()
479 pci_bus_for_each_resource(child->parent, res, i) { in pci_read_bridge_bases()
481 pci_bus_add_resource(child, res, in pci_read_bridge_bases()
724 struct pci_bus *child; in pci_alloc_child_bus() local
731 child = pci_alloc_bus(parent); in pci_alloc_child_bus()
732 if (!child) in pci_alloc_child_bus()
735 child->parent = parent; in pci_alloc_child_bus()
736 child->ops = parent->ops; in pci_alloc_child_bus()
737 child->msi = parent->msi; in pci_alloc_child_bus()
738 child->sysdata = parent->sysdata; in pci_alloc_child_bus()
739 child->bus_flags = parent->bus_flags; in pci_alloc_child_bus()
744 child->dev.class = &pcibus_class; in pci_alloc_child_bus()
745 dev_set_name(&child->dev, "%04x:%02x", pci_domain_nr(child), busnr); in pci_alloc_child_bus()
751 child->number = child->busn_res.start = busnr; in pci_alloc_child_bus()
752 child->primary = parent->busn_res.start; in pci_alloc_child_bus()
753 child->busn_res.end = 0xff; in pci_alloc_child_bus()
756 child->dev.parent = parent->bridge; in pci_alloc_child_bus()
760 child->self = bridge; in pci_alloc_child_bus()
761 child->bridge = get_device(&bridge->dev); in pci_alloc_child_bus()
762 child->dev.parent = child->bridge; in pci_alloc_child_bus()
763 pci_set_bus_of_node(child); in pci_alloc_child_bus()
764 pci_set_bus_speed(child); in pci_alloc_child_bus()
768 child->resource[i] = &bridge->resource[PCI_BRIDGE_RESOURCES+i]; in pci_alloc_child_bus()
769 child->resource[i]->name = child->name; in pci_alloc_child_bus()
771 bridge->subordinate = child; in pci_alloc_child_bus()
774 pci_set_bus_msi_domain(child); in pci_alloc_child_bus()
775 ret = device_register(&child->dev); in pci_alloc_child_bus()
778 pcibios_add_bus(child); in pci_alloc_child_bus()
780 if (child->ops->add_bus) { in pci_alloc_child_bus()
781 ret = child->ops->add_bus(child); in pci_alloc_child_bus()
783 dev_err(&child->dev, "failed to add bus: %d\n", ret); in pci_alloc_child_bus()
787 pci_create_legacy_files(child); in pci_alloc_child_bus()
789 return child; in pci_alloc_child_bus()
795 struct pci_bus *child; in pci_add_new_bus() local
797 child = pci_alloc_child_bus(parent, dev, busnr); in pci_add_new_bus()
798 if (child) { in pci_add_new_bus()
800 list_add_tail(&child->node, &parent->children); in pci_add_new_bus()
803 return child; in pci_add_new_bus()
830 struct pci_bus *child; in pci_scan_bridge() local
889 child = pci_find_bus(pci_domain_nr(bus), secondary); in pci_scan_bridge()
890 if (!child) { in pci_scan_bridge()
891 child = pci_add_new_bus(bus, dev, secondary); in pci_scan_bridge()
892 if (!child) in pci_scan_bridge()
894 child->primary = primary; in pci_scan_bridge()
895 pci_bus_insert_busn_res(child, secondary, subordinate); in pci_scan_bridge()
896 child->bridge_ctl = bctl; in pci_scan_bridge()
899 cmax = pci_scan_child_bus(child); in pci_scan_bridge()
930 child = pci_find_bus(pci_domain_nr(bus), max+1); in pci_scan_bridge()
931 if (!child) { in pci_scan_bridge()
932 child = pci_add_new_bus(bus, dev, max+1); in pci_scan_bridge()
933 if (!child) in pci_scan_bridge()
935 pci_bus_insert_busn_res(child, max+1, in pci_scan_bridge()
940 | ((unsigned int)(child->primary) << 0) in pci_scan_bridge()
941 | ((unsigned int)(child->busn_res.start) << 8) in pci_scan_bridge()
942 | ((unsigned int)(child->busn_res.end) << 16); in pci_scan_bridge()
959 child->bridge_ctl = bctl; in pci_scan_bridge()
960 max = pci_scan_child_bus(child); in pci_scan_bridge()
995 pci_bus_update_busn_res_end(child, max); in pci_scan_bridge()
999 sprintf(child->name, in pci_scan_bridge()
1001 pci_domain_nr(bus), child->number); in pci_scan_bridge()
1005 if ((child->busn_res.end > bus->busn_res.end) || in pci_scan_bridge()
1006 (child->number > bus->busn_res.end) || in pci_scan_bridge()
1007 (child->number < bus->number) || in pci_scan_bridge()
1008 (child->busn_res.end < bus->number)) { in pci_scan_bridge()
1009 dev_info(&child->dev, "%pR %s hidden behind%s bridge %s %pR\n", in pci_scan_bridge()
1010 &child->busn_res, in pci_scan_bridge()
1011 (bus->number > child->busn_res.end && in pci_scan_bridge()
1012 bus->busn_res.end < child->number) ? in pci_scan_bridge()