spi/spi-sh: Use devm_ioremap
authorHimangi Saraogi <himangi774@gmail.com>
Sun, 6 Jul 2014 16:14:50 +0000 (21:44 +0530)
committerMark Brown <broonie@linaro.org>
Mon, 7 Jul 2014 10:50:52 +0000 (12:50 +0200)
This patch introduces the use of devm_ioremap and removes the iounmaps
in the probe and remove functions. Also, the labels are renamed to
preserve ordering.

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi-sh.c

index 03edf5e..8e171a7 100644 (file)
@@ -432,7 +432,6 @@ static int spi_sh_remove(struct platform_device *pdev)
        spi_unregister_master(ss->master);
        destroy_workqueue(ss->workqueue);
        free_irq(ss->irq, ss);
-       iounmap(ss->addr);
 
        return 0;
 }
@@ -480,7 +479,7 @@ static int spi_sh_probe(struct platform_device *pdev)
        }
        ss->irq = irq;
        ss->master = master;
-       ss->addr = ioremap(res->start, resource_size(res));
+       ss->addr = devm_ioremap(&pdev->dev, res->start, resource_size(res));
        if (ss->addr == NULL) {
                dev_err(&pdev->dev, "ioremap error.\n");
                ret = -ENOMEM;
@@ -495,13 +494,13 @@ static int spi_sh_probe(struct platform_device *pdev)
        if (ss->workqueue == NULL) {
                dev_err(&pdev->dev, "create workqueue error\n");
                ret = -EBUSY;
-               goto error2;
+               goto error1;
        }
 
        ret = request_irq(irq, spi_sh_irq, 0, "spi_sh", ss);
        if (ret < 0) {
                dev_err(&pdev->dev, "request_irq error\n");
-               goto error3;
+               goto error2;
        }
 
        master->num_chipselect = 2;
@@ -513,17 +512,15 @@ static int spi_sh_probe(struct platform_device *pdev)
        ret = spi_register_master(master);
        if (ret < 0) {
                printk(KERN_ERR "spi_register_master error.\n");
-               goto error4;
+               goto error3;
        }
 
        return 0;
 
- error4:
-       free_irq(irq, ss);
  error3:
-       destroy_workqueue(ss->workqueue);
+       free_irq(irq, ss);
  error2:
-       iounmap(ss->addr);
+       destroy_workqueue(ss->workqueue);
  error1:
        spi_master_put(master);