Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial
[pandora-kernel.git] / drivers / pcmcia / cardbus.c
index 1d755e2..2d7effe 100644 (file)
@@ -138,7 +138,7 @@ int read_cb_mem(struct pcmcia_socket * s, int space, u_int addr, u_int len, void
 
        cs_dbg(s, 3, "read_cb_mem(%d, %#x, %u)\n", space, addr, len);
 
-       dev = pci_find_slot(s->cb_dev->subordinate->number, 0);
+       dev = pci_get_slot(s->cb_dev->subordinate, 0);
        if (!dev)
                goto fail;
 
@@ -152,6 +152,9 @@ int read_cb_mem(struct pcmcia_socket * s, int space, u_int addr, u_int len, void
        }
 
        res = dev->resource + space - 1;
+
+       pci_dev_put(dev);
+
        if (!res->flags)
                goto fail;
 
@@ -228,6 +231,11 @@ int cb_alloc(struct pcmcia_socket * s)
        pci_bus_size_bridges(bus);
        pci_bus_assign_resources(bus);
        cardbus_assign_irqs(bus, s->pci_irq);
+
+       /* socket specific tune function */
+       if (s->tune_bridge)
+               s->tune_bridge(s, bus);
+
        pci_enable_bridges(bus);
        pci_bus_add_devices(bus);