fsl_pq_mdio: Fix compiler/sparse warnings (part 1)
[safe/jmp/linux-2.6] / drivers / net / fsl_pq_mdio.c
index 4065b7c..fb8c8d9 100644 (file)
@@ -262,10 +262,11 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
        struct device_node *np = ofdev->node;
        struct device_node *tbi;
        struct fsl_pq_mdio __iomem *regs = NULL;
+       void __iomem *map;
        u32 __iomem *tbipa;
        struct mii_bus *new_bus;
        int tbiaddr = -1;
-       u64 addr = 0, size = 0, ioremap_miimcfg = 0;
+       u64 addr = 0, size = 0;
        int err = 0;
 
        new_bus = mdiobus_alloc();
@@ -279,28 +280,20 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
        fsl_pq_mdio_bus_name(new_bus->id, np);
 
        /* Set the PHY base address */
-       if (of_device_is_compatible(np,"fsl,gianfar-mdio") ||
-               of_device_is_compatible(np, "fsl,gianfar-tbi") ||
-               of_device_is_compatible(np, "fsl,ucc-mdio") ||
-               of_device_is_compatible(np,"ucc_geth_phy" )) {
-               addr = of_translate_address(np, of_get_address(np, 0, &size, NULL));
-               ioremap_miimcfg =  container_of(addr, struct fsl_pq_mdio, miimcfg);
-               regs = ioremap(ioremap_miimcfg, size +
-                               offsetof(struct fsl_pq_mdio, miimcfg));
-       } else if (of_device_is_compatible(np,"fsl,etsec2-mdio") ||
-                       of_device_is_compatible(np, "fsl,etsec2-tbi")) {
-               addr = of_translate_address(np, of_get_address(np, 0, &size, NULL));
-               regs = ioremap(addr, size);
-       } else {
-               err = -EINVAL;
-               goto err_free_bus;
-       }
-
-       if (NULL == regs) {
+       addr = of_translate_address(np, of_get_address(np, 0, &size, NULL));
+       map = ioremap(addr, size);
+       if (!map) {
                err = -ENOMEM;
                goto err_free_bus;
        }
 
+       if (of_device_is_compatible(np, "fsl,gianfar-mdio") ||
+                       of_device_is_compatible(np, "fsl,gianfar-tbi") ||
+                       of_device_is_compatible(np, "fsl,ucc-mdio") ||
+                       of_device_is_compatible(np, "ucc_geth_phy"))
+               map -= offsetof(struct fsl_pq_mdio, miimcfg);
+       regs = map;
+
        new_bus->priv = (void __force *)regs;
 
        new_bus->irq = kcalloc(PHY_MAX_ADDR, sizeof(int), GFP_KERNEL);