]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/ata/pata_mpc52xx.c
Merge branch 'audit' of git://git.linaro.org/people/rmk/linux-arm
[karo-tx-linux.git] / drivers / ata / pata_mpc52xx.c
index 00748ae1a016ec9eaf55f93b36a1142fcb73c028..d2c102fd433062618e4206a3eff778a62a4587a2 100644 (file)
@@ -687,11 +687,11 @@ mpc52xx_ata_probe(struct platform_device *op)
        int ata_irq = 0;
        struct mpc52xx_ata __iomem *ata_regs;
        struct mpc52xx_ata_priv *priv = NULL;
-       int rv, ret, task_irq = 0;
+       int rv, task_irq;
        int mwdma_mask = 0, udma_mask = 0;
        const __be32 *prop;
        int proplen;
-       struct bcom_task *dmatsk = NULL;
+       struct bcom_task *dmatsk;
 
        /* Get ipb frequency */
        ipb_freq = mpc5xxx_get_bus_frequency(op->dev.of_node);
@@ -717,8 +717,7 @@ mpc52xx_ata_probe(struct platform_device *op)
        ata_regs = devm_ioremap(&op->dev, res_mem.start, sizeof(*ata_regs));
        if (!ata_regs) {
                dev_err(&op->dev, "error mapping device registers\n");
-               rv = -ENOMEM;
-               goto err;
+               return -ENOMEM;
        }
 
        /*
@@ -753,7 +752,7 @@ mpc52xx_ata_probe(struct platform_device *op)
        if (!priv) {
                dev_err(&op->dev, "error allocating private structure\n");
                rv = -ENOMEM;
-               goto err;
+               goto err1;
        }
 
        priv->ipb_period = 1000000000 / (ipb_freq / 1000);
@@ -776,15 +775,15 @@ mpc52xx_ata_probe(struct platform_device *op)
        if (!dmatsk) {
                dev_err(&op->dev, "bestcomm initialization failed\n");
                rv = -ENOMEM;
-               goto err;
+               goto err1;
        }
 
        task_irq = bcom_get_task_irq(dmatsk);
-       ret = request_irq(task_irq, &mpc52xx_ata_task_irq, 0,
+       rv = devm_request_irq(&op->dev, task_irq, &mpc52xx_ata_task_irq, 0,
                                "ATA task", priv);
-       if (ret) {
+       if (rv) {
                dev_err(&op->dev, "error requesting DMA IRQ\n");
-               goto err;
+               goto err2;
        }
        priv->dmatsk = dmatsk;
 
@@ -792,7 +791,7 @@ mpc52xx_ata_probe(struct platform_device *op)
        rv = mpc52xx_ata_hw_init(priv);
        if (rv) {
                dev_err(&op->dev, "error initializing hardware\n");
-               goto err;
+               goto err2;
        }
 
        /* Register ourselves to libata */
@@ -800,23 +799,16 @@ mpc52xx_ata_probe(struct platform_device *op)
                                  mwdma_mask, udma_mask);
        if (rv) {
                dev_err(&op->dev, "error registering with ATA layer\n");
-               goto err;
+               goto err2;
        }
 
        return 0;
 
- err:
-       devm_release_mem_region(&op->dev, res_mem.start, sizeof(*ata_regs));
-       if (ata_irq)
-               irq_dispose_mapping(ata_irq);
-       if (task_irq)
-               irq_dispose_mapping(task_irq);
-       if (dmatsk)
-               bcom_ata_release(dmatsk);
-       if (ata_regs)
-               devm_iounmap(&op->dev, ata_regs);
-       if (priv)
-               devm_kfree(&op->dev, priv);
+ err2:
+       irq_dispose_mapping(task_irq);
+       bcom_ata_release(dmatsk);
+ err1:
+       irq_dispose_mapping(ata_irq);
        return rv;
 }
 
@@ -835,12 +827,6 @@ mpc52xx_ata_remove(struct platform_device *op)
        bcom_ata_release(priv->dmatsk);
        irq_dispose_mapping(priv->ata_irq);
 
-       /* Clear up IO allocations */
-       devm_iounmap(&op->dev, priv->ata_regs);
-       devm_release_mem_region(&op->dev, priv->ata_regs_pa,
-                               sizeof(*priv->ata_regs));
-       devm_kfree(&op->dev, priv);
-
        return 0;
 }