crypto: inside-secure - improve clock initialization
authorGregory CLEMENT <gregory.clement@bootlin.com>
Tue, 13 Mar 2018 16:48:41 +0000 (17:48 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 23 Mar 2018 15:39:59 +0000 (23:39 +0800)
The clock is optional, but if it is present we should managed it. If
there is an error while trying getting it, we should exit and report this
error.

So instead of returning an error only in the -EPROBE case, turn it in an
other way and ignore the clock only if it is not present (-ENOENT case).

Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/inside-secure/safexcel.c

index 09adeaa0da6be010e2c27a9aa64d4323fdf4b7c5..cbcb5d9f17bd771b0f01fe15807a8be34d5dd292 100644 (file)
@@ -882,16 +882,17 @@ static int safexcel_probe(struct platform_device *pdev)
        }
 
        priv->clk = devm_clk_get(&pdev->dev, NULL);
-       if (!IS_ERR(priv->clk)) {
+       ret = PTR_ERR_OR_ZERO(priv->clk);
+       /* The clock isn't mandatory */
+       if  (ret != -ENOENT) {
+               if (ret)
+                       return ret;
+
                ret = clk_prepare_enable(priv->clk);
                if (ret) {
                        dev_err(dev, "unable to enable clk (%d)\n", ret);
                        return ret;
                }
-       } else {
-               /* The clock isn't mandatory */
-               if (PTR_ERR(priv->clk) == -EPROBE_DEFER)
-                       return -EPROBE_DEFER;
        }
 
        ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));