diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 981e701..e187257 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -414,8 +414,11 @@ static void pbus_size_io(struct pci_bus *bus, resource_size_t min_size) struct resource *b_res = find_free_bus_resource(bus, IORESOURCE_IO); unsigned long size = 0, size1 = 0, old_size; - if (!b_res) + if (!b_res) { + dev_printk(KERN_INFO, &bus->self->dev, "No i/o resources for bridge window " + "[bus %02x-%02x]\n", bus->secondary, bus->subordinate); return; + } list_for_each_entry(dev, &bus->devices, bus_list) { int i; @@ -427,6 +430,11 @@ static void pbus_size_io(struct pci_bus *bus, resource_size_t min_size) if (r->parent || !(r->flags & IORESOURCE_IO)) continue; r_size = resource_size(r); + if (r_size == 1) { + r_size = 0; + dev_printk(KERN_INFO, dev, "%pR io resource sized to zero" + "%pR \n", r); + } if (r_size < 0x400) /* Might be re-aligned for ISA */ @@ -453,6 +461,9 @@ static void pbus_size_io(struct pci_bus *bus, resource_size_t min_size) dev_info(&bus->self->dev, "disabling bridge window " "%pR to [bus %02x-%02x] (unused)\n", b_res, bus->secondary, bus->subordinate); + dev_printk(KERN_INFO, &bus->self->dev, "bridge io window reset" + "%pR to [bus %02x-%02x]\n", b_res, + bus->secondary, bus->subordinate); b_res->flags = 0; return; } @@ -460,6 +471,9 @@ static void pbus_size_io(struct pci_bus *bus, resource_size_t min_size) b_res->start = 4096; b_res->end = b_res->start + size - 1; b_res->flags |= IORESOURCE_STARTALIGN; + dev_printk(KERN_INFO, &bus->self->dev, "bridge io window sized successfully " + "%pR to [bus %02x-%02x]\n", b_res, + bus->secondary, bus->subordinate); } /* Calculate the size of the bus and minimal alignment which @@ -474,8 +488,11 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, struct resource *b_res = find_free_bus_resource(bus, type); unsigned int mem64_mask = 0; - if (!b_res) + if (!b_res) { + dev_printk(KERN_INFO, &bus->self->dev, "No mem resources for bridge window " + "[bus %02x-%02x]\n", bus->secondary, bus->subordinate); return 0; + } memset(aligns, 0, sizeof(aligns)); max_order = 0; @@ -494,6 +511,11 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, if (r->parent || (r->flags & mask) != type) continue; r_size = resource_size(r); + if (r_size == 1) { + r_size = 0; + dev_printk(KERN_INFO, dev, "%pR mem resource sized to zero" + "%pR \n", r); + } /* For bridges size != alignment */ align = pci_resource_alignment(dev, r); order = __ffs(align) - 20; @@ -543,6 +565,9 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, dev_info(&bus->self->dev, "disabling bridge window " "%pR to [bus %02x-%02x] (unused)\n", b_res, bus->secondary, bus->subordinate); + dev_printk(KERN_INFO, &bus->self->dev, "bridge mem window reset" + "%pR to [bus %02x-%02x]\n", b_res, + bus->secondary, bus->subordinate); b_res->flags = 0; return 1; } @@ -550,6 +575,9 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, b_res->end = size + min_align - 1; b_res->flags |= IORESOURCE_STARTALIGN; b_res->flags |= mem64_mask; + dev_printk(KERN_INFO, &bus->self->dev, "bridge mem window sized successfully " + "%pR to [bus %02x-%02x]\n", b_res, + bus->secondary, bus->subordinate); return 1; }