@@ -66,7 +66,8 @@ static void cardbus_config_irq_and_cls(struct pci_bus *bus, int irq)
*/
int __ref cb_alloc(struct pcmcia_socket *s)
{
- struct pci_bus *bus = s->cb_dev->subordinate;
+ struct pci_dev *bridge = s->cb_dev;
+ struct pci_bus *bus = bridge->subordinate;
struct pci_dev *dev;
unsigned int max, pass;
@@ -83,15 +84,13 @@ int __ref cb_alloc(struct pcmcia_socket *s)
/*
* Size all resources below the CardBus controller.
*/
- pci_bus_size_bridges(bus);
- pci_bus_assign_resources(bus);
+ pci_assign_unassigned_bridge_resources(bridge);
cardbus_config_irq_and_cls(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);
return 0;