pcmcia: pxa2xx: update socket driver to use devm_clk_get() API
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 26 Mar 2015 10:27:08 +0000 (10:27 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 3 Sep 2015 15:00:13 +0000 (16:00 +0100)
Update the pxa2xx socket driver to use the devm_clk_get() API so that
the cleanup paths are simplified.

Reviewed-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/pcmcia/pxa2xx_base.c

index 984a8ff559d8870feec86e637e8d84e37f2f2d7b..197c77a64ce0c5c76de8f55210106ff62c066aff 100644 (file)
@@ -296,17 +296,15 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
                goto err0;
        }
 
-       clk = clk_get(&dev->dev, NULL);
+       clk = devm_clk_get(&dev->dev, NULL);
        if (IS_ERR(clk))
                return -ENODEV;
 
        pxa2xx_drv_pcmcia_ops(ops);
 
        sinfo = kzalloc(SKT_DEV_INFO_SIZE(ops->nr), GFP_KERNEL);
-       if (!sinfo) {
-               clk_put(clk);
+       if (!sinfo)
                return -ENOMEM;
-       }
 
        sinfo->nskt = ops->nr;
        sinfo->clk = clk;
@@ -332,7 +330,6 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
 err1:
        while (--i >= 0)
                soc_pcmcia_remove_one(&sinfo->skt[i]);
-       clk_put(clk);
        kfree(sinfo);
 err0:
        return ret;
@@ -348,7 +345,6 @@ static int pxa2xx_drv_pcmcia_remove(struct platform_device *dev)
        for (i = 0; i < sinfo->nskt; i++)
                soc_pcmcia_remove_one(&sinfo->skt[i]);
 
-       clk_put(sinfo->clk);
        kfree(sinfo);
        return 0;
 }