]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/pci/setup-bus.c
ALSA: Fix a const to non-const assignment in the Digigram VXpocket sound driver
[linux-2.6-omap-h63xx.git] / drivers / pci / setup-bus.c
index 125e7b7f34ffd13462e551b31c79cd03ab0d3572..8ddb918f5f57dfc0bdda3e4a287abe4c08bae365 100644 (file)
@@ -65,6 +65,7 @@ static void pbus_assign_resources_sorted(struct pci_bus *bus)
                res = list->res;
                idx = res - &list->dev->resource[0];
                if (pci_assign_resource(list->dev, idx)) {
+                       /* FIXME: get rid of this */
                        res->start = 0;
                        res->end = 0;
                        res->flags = 0;
@@ -144,8 +145,7 @@ EXPORT_SYMBOL(pci_setup_cardbus);
    config space writes, so it's quite possible that an I/O window of
    the bridge will have some undesirable address (e.g. 0) after the
    first write. Ditto 64-bit prefetchable MMIO.  */
-static void __devinit
-pci_setup_bridge(struct pci_bus *bus)
+static void pci_setup_bridge(struct pci_bus *bus)
 {
        struct pci_dev *bridge = bus->self;
        struct pci_bus_region region;
@@ -327,6 +327,7 @@ static void pbus_size_io(struct pci_bus *bus)
        /* Alignment of the IO window is always 4K */
        b_res->start = 4096;
        b_res->end = b_res->start + size - 1;
+       b_res->flags |= IORESOURCE_STARTALIGN;
 }
 
 /* Calculate the size of the bus and minimal alignment which
@@ -401,11 +402,11 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, unsigned long
        }
        b_res->start = min_align;
        b_res->end = size + min_align - 1;
+       b_res->flags |= IORESOURCE_STARTALIGN;
        return 1;
 }
 
-static void __devinit
-pci_bus_size_cardbus(struct pci_bus *bus)
+static void pci_bus_size_cardbus(struct pci_bus *bus)
 {
        struct pci_dev *bridge = bus->self;
        struct resource *b_res = &bridge->resource[PCI_BRIDGE_RESOURCES];
@@ -415,13 +416,13 @@ pci_bus_size_cardbus(struct pci_bus *bus)
         * Reserve some resources for CardBus.  We reserve
         * a fixed amount of bus space for CardBus bridges.
         */
-       b_res[0].start = pci_cardbus_io_size;
-       b_res[0].end = b_res[0].start + pci_cardbus_io_size - 1;
-       b_res[0].flags |= IORESOURCE_IO;
+       b_res[0].start = 0;
+       b_res[0].end = pci_cardbus_io_size - 1;
+       b_res[0].flags |= IORESOURCE_IO | IORESOURCE_SIZEALIGN;
 
-       b_res[1].start = pci_cardbus_io_size;
-       b_res[1].end = b_res[1].start + pci_cardbus_io_size - 1;
-       b_res[1].flags |= IORESOURCE_IO;
+       b_res[1].start = 0;
+       b_res[1].end = pci_cardbus_io_size - 1;
+       b_res[1].flags |= IORESOURCE_IO | IORESOURCE_SIZEALIGN;
 
        /*
         * Check whether prefetchable memory is supported
@@ -440,17 +441,17 @@ pci_bus_size_cardbus(struct pci_bus *bus)
         * twice the size.
         */
        if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM0) {
-               b_res[2].start = pci_cardbus_mem_size;
-               b_res[2].end = b_res[2].start + pci_cardbus_mem_size - 1;
-               b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH;
+               b_res[2].start = 0;
+               b_res[2].end = pci_cardbus_mem_size - 1;
+               b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH | IORESOURCE_SIZEALIGN;
 
-               b_res[3].start = pci_cardbus_mem_size;
-               b_res[3].end = b_res[3].start + pci_cardbus_mem_size - 1;
-               b_res[3].flags |= IORESOURCE_MEM;
+               b_res[3].start = 0;
+               b_res[3].end = pci_cardbus_mem_size - 1;
+               b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN;
        } else {
-               b_res[3].start = pci_cardbus_mem_size * 2;
-               b_res[3].end = b_res[3].start + pci_cardbus_mem_size * 2 - 1;
-               b_res[3].flags |= IORESOURCE_MEM;
+               b_res[3].start = 0;
+               b_res[3].end = pci_cardbus_mem_size * 2 - 1;
+               b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN;
        }
 }
 
@@ -486,12 +487,7 @@ void __ref pci_bus_size_bridges(struct pci_bus *bus)
                break;
 
        case PCI_CLASS_BRIDGE_PCI:
-               /* don't size subtractive decoding (transparent)
-                * PCI-to-PCI bridges */
-               if (bus->self->transparent)
-                       break;
                pci_bridge_check_ranges(bus);
-               /* fall through */
        default:
                pbus_size_io(bus);
                /* If the bridge supports prefetchable range, size it