vme: add vme_init_bridge for common bridge init
[cascardo/linux.git] / drivers / vme / bridges / vme_ca91cx42.c
index 5fbeab3..9f2c834 100644 (file)
@@ -204,10 +204,6 @@ static int ca91cx42_irq_init(struct vme_bridge *ca91cx42_bridge)
        /* Need pdev */
        pdev = to_pci_dev(ca91cx42_bridge->parent);
 
-       INIT_LIST_HEAD(&ca91cx42_bridge->vme_error_handlers);
-
-       mutex_init(&ca91cx42_bridge->irq_mtx);
-
        /* Disable interrupts from PCI to VME */
        iowrite32(0, bridge->base + VINT_EN);
 
@@ -1626,6 +1622,7 @@ static int ca91cx42_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                retval = -ENOMEM;
                goto err_struct;
        }
+       vme_init_bridge(ca91cx42_bridge);
 
        ca91cx42_device = kzalloc(sizeof(struct ca91cx42_driver), GFP_KERNEL);
 
@@ -1686,7 +1683,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        }
 
        /* Add master windows to list */
-       INIT_LIST_HEAD(&ca91cx42_bridge->master_resources);
        for (i = 0; i < CA91C142_MAX_MASTER; i++) {
                master_image = kmalloc(sizeof(struct vme_master_resource),
                        GFP_KERNEL);
@@ -1713,7 +1709,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        }
 
        /* Add slave windows to list */
-       INIT_LIST_HEAD(&ca91cx42_bridge->slave_resources);
        for (i = 0; i < CA91C142_MAX_SLAVE; i++) {
                slave_image = kmalloc(sizeof(struct vme_slave_resource),
                        GFP_KERNEL);
@@ -1741,7 +1736,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        }
 
        /* Add dma engines to list */
-       INIT_LIST_HEAD(&ca91cx42_bridge->dma_resources);
        for (i = 0; i < CA91C142_MAX_DMA; i++) {
                dma_ctrlr = kmalloc(sizeof(struct vme_dma_resource),
                        GFP_KERNEL);
@@ -1764,7 +1758,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        }
 
        /* Add location monitor to list */
-       INIT_LIST_HEAD(&ca91cx42_bridge->lm_resources);
        lm = kmalloc(sizeof(struct vme_lm_resource), GFP_KERNEL);
        if (lm == NULL) {
                dev_err(&pdev->dev, "Failed to allocate memory for "