OSDN Git Service

crypto: picoxcell - Update to the current clk API
authorMichael van der Westhuizen <michael@smart-africa.com>
Fri, 19 Jun 2015 13:55:51 +0000 (15:55 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sun, 21 Jun 2015 11:59:22 +0000 (19:59 +0800)
The picoXcell hardware crypto accelerator driver was using an
older version of the clk framework, and not (un)preparing the
clock before enabling/disabling it.  This change uses the handy
clk_prepare_enable function to interact with the current clk
framework correctly.

Signed-off-by: Michael van der Westhuizen <michael@smart-africa.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/picoxcell_crypto.c

index c2fd860..4f56f36 100644 (file)
@@ -1755,15 +1755,15 @@ static int spacc_probe(struct platform_device *pdev)
                return PTR_ERR(engine->clk);
        }
 
-       if (clk_enable(engine->clk)) {
-               dev_info(&pdev->dev, "unable to enable clk\n");
+       if (clk_prepare_enable(engine->clk)) {
+               dev_info(&pdev->dev, "unable to prepare/enable clk\n");
                clk_put(engine->clk);
                return -EIO;
        }
 
        err = device_create_file(&pdev->dev, &dev_attr_stat_irq_thresh);
        if (err) {
-               clk_disable(engine->clk);
+               clk_disable_unprepare(engine->clk);
                clk_put(engine->clk);
                return err;
        }
@@ -1831,7 +1831,7 @@ static int spacc_remove(struct platform_device *pdev)
                crypto_unregister_alg(&alg->alg);
        }
 
-       clk_disable(engine->clk);
+       clk_disable_unprepare(engine->clk);
        clk_put(engine->clk);
 
        return 0;