Staging: vme: ca91cx42 slot detection
authorMartyn Welch <martyn.welch@ge.com>
Thu, 18 Feb 2010 15:13:45 +0000 (15:13 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 4 Mar 2010 00:43:01 +0000 (16:43 -0800)
Sort out slot detection on the ca91cx42.

Signed-off-by: Martyn Welch <martyn.welch@ge.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/vme/bridges/vme_ca91cx42.c

index 1edfa44..ecd9179 100644 (file)
@@ -1452,14 +1452,12 @@ static int ca91cx42_crcsr_init(struct vme_bridge *ca91cx42_bridge,
 
        bridge = ca91cx42_bridge->driver_priv;
 
-/* XXX We may need to set this somehow as the Universe II does not support
- *     geographical addressing.
- */
-#if 0
-       if (vme_slotnum != -1)
-               iowrite32(vme_slotnum << 27, bridge->base + VCSR_BS);
-#endif
        slot = ca91cx42_slot_get(ca91cx42_bridge);
+
+       /* Write CSR Base Address if slot ID is supplied as a module param */
+       if (geoid)
+               iowrite32(geoid << 27, bridge->base + VCSR_BS);
+
        dev_info(&pdev->dev, "CR/CSR Offset: %d\n", slot);
        if (slot == 0) {
                dev_err(&pdev->dev, "Slot number is unset, not configuring "
@@ -1714,10 +1712,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 
        if (ca91cx42_crcsr_init(ca91cx42_bridge, pdev)) {
                dev_err(&pdev->dev, "CR/CSR configuration failed.\n");
-               retval = -EINVAL;
-#if 0
-               goto err_crcsr;
-#endif
        }
 
        /* Need to save ca91cx42_bridge pointer locally in link list for use in
@@ -1736,9 +1730,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        vme_unregister_bridge(ca91cx42_bridge);
 err_reg:
        ca91cx42_crcsr_exit(ca91cx42_bridge, pdev);
-#if 0
-err_crcsr:
-#endif
 err_lm:
        /* resources are stored in link list */
        list_for_each(pos, &(ca91cx42_bridge->lm_resources)) {