|
@@ -537,6 +537,36 @@ void __ref pci_bus_assign_resources(struct pci_bus *bus)
|
|
|
}
|
|
|
EXPORT_SYMBOL(pci_bus_assign_resources);
|
|
|
|
|
|
+static void pci_bus_dump_res(struct pci_bus *bus)
|
|
|
+{
|
|
|
+ int i;
|
|
|
+
|
|
|
+ for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
|
|
|
+ struct resource *res = bus->resource[i];
|
|
|
+ if (!res)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ printk(KERN_INFO "bus: %02x index %x %s: [%llx, %llx]\n", bus->number, i, (res->flags & IORESOURCE_IO)? "io port":"mmio", res->start, res->end);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+static void pci_bus_dump_resources(struct pci_bus *bus)
|
|
|
+{
|
|
|
+ struct pci_bus *b;
|
|
|
+ struct pci_dev *dev;
|
|
|
+
|
|
|
+
|
|
|
+ pci_bus_dump_res(bus);
|
|
|
+
|
|
|
+ list_for_each_entry(dev, &bus->devices, bus_list) {
|
|
|
+ b = dev->subordinate;
|
|
|
+ if (!b)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ pci_bus_dump_resources(b);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void __init
|
|
|
pci_assign_unassigned_resources(void)
|
|
|
{
|
|
@@ -552,4 +582,9 @@ pci_assign_unassigned_resources(void)
|
|
|
pci_bus_assign_resources(bus);
|
|
|
pci_enable_bridges(bus);
|
|
|
}
|
|
|
+
|
|
|
+ /* dump the resource on buses */
|
|
|
+ list_for_each_entry(bus, &pci_root_buses, node) {
|
|
|
+ pci_bus_dump_resources(bus);
|
|
|
+ }
|
|
|
}
|