hwrng: atmel - use clk_prepapre_enable/_disable_unprepare
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Thu, 20 Nov 2014 09:43:22 +0000 (10:43 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 20 Nov 2014 14:39:40 +0000 (22:39 +0800)
Use clk_prepare_enable/_disable_unprepare instead of clk_enable/disable
to work properly with the CCF.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Peter Korsgaard <peter@korsgaard.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/atmel-rng.c

index 851bc7e20ad267974d2c5fd1b77a3794fcf7f7e1..644ec4882206d9cc8b30386112be3750124c7f9e 100644 (file)
@@ -67,7 +67,7 @@ static int atmel_trng_probe(struct platform_device *pdev)
        if (IS_ERR(trng->clk))
                return PTR_ERR(trng->clk);
 
-       ret = clk_enable(trng->clk);
+       ret = clk_prepare_enable(trng->clk);
        if (ret)
                return ret;
 
@@ -95,7 +95,7 @@ static int atmel_trng_remove(struct platform_device *pdev)
        hwrng_unregister(&trng->rng);
 
        writel(TRNG_KEY, trng->base + TRNG_CR);
-       clk_disable(trng->clk);
+       clk_disable_unprepare(trng->clk);
 
        return 0;
 }
@@ -105,7 +105,7 @@ static int atmel_trng_suspend(struct device *dev)
 {
        struct atmel_trng *trng = dev_get_drvdata(dev);
 
-       clk_disable(trng->clk);
+       clk_disable_unprepare(trng->clk);
 
        return 0;
 }
@@ -114,7 +114,7 @@ static int atmel_trng_resume(struct device *dev)
 {
        struct atmel_trng *trng = dev_get_drvdata(dev);
 
-       return clk_enable(trng->clk);
+       return clk_prepare_enable(trng->clk);
 }
 
 static const struct dev_pm_ops atmel_trng_pm_ops = {