Lines Matching full:bus

2  *	drivers/pci/bus.c
27 printk(KERN_ERR "PCI: can't add bus resource %pR\n", res); in pci_add_resource()
47 void pci_bus_add_resource(struct pci_bus *bus, struct resource *res, in pci_bus_add_resource() argument
54 dev_err(&bus->dev, "can't add %pR resource\n", res); in pci_bus_add_resource()
60 list_add_tail(&bus_res->list, &bus->resources); in pci_bus_add_resource()
63 struct resource *pci_bus_resource_n(const struct pci_bus *bus, int n) in pci_bus_resource_n() argument
68 return bus->resource[n]; in pci_bus_resource_n()
71 list_for_each_entry(bus_res, &bus->resources, list) { in pci_bus_resource_n()
79 void pci_bus_remove_resources(struct pci_bus *bus) in pci_bus_remove_resources() argument
84 bus->resource[i] = NULL; in pci_bus_remove_resources()
86 pci_free_resource_list(&bus->resources); in pci_bus_remove_resources()
90 * pci_bus_alloc_resource - allocate a resource from a parent bus
91 * @bus: PCI bus
100 * Given the PCI bus a device resides on, the size, minimum address,
105 pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, in pci_bus_alloc_resource() argument
124 pci_bus_for_each_resource(bus, r, i) { in pci_bus_alloc_resource()
170 * pci_bus_add_child - add a child bus
171 * @bus: bus to add
173 * This adds sysfs entries for a single bus
175 int pci_bus_add_child(struct pci_bus *bus) in pci_bus_add_child() argument
179 if (bus->bridge) in pci_bus_add_child()
180 bus->dev.parent = bus->bridge; in pci_bus_add_child()
182 retval = device_register(&bus->dev); in pci_bus_add_child()
186 bus->is_added = 1; in pci_bus_add_child()
188 /* Create legacy_io and legacy_mem files for this bus */ in pci_bus_add_child()
189 pci_create_legacy_files(bus); in pci_bus_add_child()
196 * @bus: bus to check for new devices
198 * Add newly discovered PCI devices (which are on the bus->devices
200 * entries. Where a bridge is found, add the discovered bus to
206 void pci_bus_add_devices(const struct pci_bus *bus) in pci_bus_add_devices() argument
212 list_for_each_entry(dev, &bus->devices, bus_list) { in pci_bus_add_devices()
221 list_for_each_entry(dev, &bus->devices, bus_list) { in pci_bus_add_devices()
226 * If there is an unattached subordinate bus, attach in pci_bus_add_devices()
233 list_add_tail(&child->node, &dev->bus->children); in pci_bus_add_devices()
239 * register the bus with sysfs as the parent is now in pci_bus_add_devices()
246 dev_err(&dev->dev, "Error adding bus, continuing\n"); in pci_bus_add_devices()
250 void pci_enable_bridges(struct pci_bus *bus) in pci_enable_bridges() argument
255 list_for_each_entry(dev, &bus->devices, bus_list) { in pci_enable_bridges()
268 /** pci_walk_bus - walk devices on/under bus, calling callback.
269 * @top bus whose devices should be walked
273 * Walk the given bus, including any bridged devices
274 * on buses under this bus. Call the provided callback
285 struct pci_bus *bus; in pci_walk_bus() local
289 bus = top; in pci_walk_bus()
293 if (next == &bus->devices) { in pci_walk_bus()
294 /* end of this bus, go up or finish */ in pci_walk_bus()
295 if (bus == top) in pci_walk_bus()
297 next = bus->self->bus_list.next; in pci_walk_bus()
298 bus = bus->self->bus; in pci_walk_bus()
305 bus = dev->subordinate; in pci_walk_bus()