ath79/mikrotik: use routerbootpart partitions
[oweals/openwrt.git] / target / linux / layerscape / patches-5.4 / 804-crypto-0008-crypto-caam-use-devres-to-populate-platform-devices.patch
1 From 7200bc3a88315a59e7094bf111c7816f0298923f Mon Sep 17 00:00:00 2001
2 From: Andrey Smirnov <andrew.smirnov@gmail.com>
3 Date: Tue, 22 Oct 2019 08:30:12 -0700
4 Subject: [PATCH] crypto: caam - use devres to populate platform devices
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Use devres to de-initialize the RNG and drop explicit de-initialization
10 code in caam_remove().
11
12 Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
13 Reviewed-by: Horia Geantă <horia.geanta@nxp.com>
14 Cc: Chris Healy <cphealy@gmail.com>
15 Cc: Lucas Stach <l.stach@pengutronix.de>
16 Cc: Horia Geantă <horia.geanta@nxp.com>
17 Cc: Herbert Xu <herbert@gondor.apana.org.au>
18 Cc: Iuliana Prodan <iuliana.prodan@nxp.com>
19 Cc: linux-crypto@vger.kernel.org
20 Cc: linux-kernel@vger.kernel.org
21 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
22 (cherry picked from commit 1a1c4f004444ebb962a02b7fc6d534e0f2ed9acb)
23 ---
24  drivers/crypto/caam/ctrl.c | 26 +++-----------------------
25  1 file changed, 3 insertions(+), 23 deletions(-)
26
27 --- a/drivers/crypto/caam/ctrl.c
28 +++ b/drivers/crypto/caam/ctrl.c
29 @@ -321,20 +321,6 @@ static int instantiate_rng(struct device
30         return ret;
31  }
32  
33 -static int caam_remove(struct platform_device *pdev)
34 -{
35 -       struct device *ctrldev;
36 -       struct caam_drv_private *ctrlpriv;
37 -
38 -       ctrldev = &pdev->dev;
39 -       ctrlpriv = dev_get_drvdata(ctrldev);
40 -
41 -       /* Remove platform devices under the crypto node */
42 -       of_platform_depopulate(ctrldev);
43 -
44 -       return 0;
45 -}
46 -
47  /*
48   * kick_trng - sets the various parameters for enabling the initialization
49   *            of the RNG4 block in CAAM
50 @@ -759,7 +745,7 @@ static int caam_probe(struct platform_de
51  #endif
52         }
53  
54 -       ret = of_platform_populate(nprop, caam_match, NULL, dev);
55 +       ret = devm_of_platform_populate(dev);
56         if (ret) {
57                 dev_err(dev, "JR platform devices creation error\n");
58                 return ret;
59 @@ -781,8 +767,7 @@ static int caam_probe(struct platform_de
60         /* If no QI and no rings specified, quit and go home */
61         if ((!ctrlpriv->qi_present) && (!ctrlpriv->total_jobrs)) {
62                 dev_err(dev, "no queues configured, terminating\n");
63 -               ret = -ENOMEM;
64 -               goto caam_remove;
65 +               return -ENOMEM;
66         }
67  
68         if (ctrlpriv->era < 10)
69 @@ -845,7 +830,7 @@ static int caam_probe(struct platform_de
70                 } while ((ret == -EAGAIN) && (ent_delay < RTSDCTL_ENT_DLY_MAX));
71                 if (ret) {
72                         dev_err(dev, "failed to instantiate RNG");
73 -                       goto caam_remove;
74 +                       return ret;
75                 }
76                 /*
77                  * Set handles init'ed by this module as the complement of the
78 @@ -919,10 +904,6 @@ static int caam_probe(struct platform_de
79                             &ctrlpriv->ctl_tdsk_wrap);
80  #endif
81         return 0;
82 -
83 -caam_remove:
84 -       caam_remove(pdev);
85 -       return ret;
86  }
87  
88  static struct platform_driver caam_driver = {
89 @@ -931,7 +912,6 @@ static struct platform_driver caam_drive
90                 .of_match_table = caam_match,
91         },
92         .probe       = caam_probe,
93 -       .remove      = caam_remove,
94  };
95  
96  module_platform_driver(caam_driver);