forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/drivers/char/hw_random/nomadik-rng.c
....@@ -1,11 +1,7 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Nomadik RNG support
34 * Copyright 2009 Alessandro Rubini
4
- *
5
- * This program is free software; you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation; either version 2 of the License, or
8
- * (at your option) any later version.
95 */
106
117 #include <linux/kernel.h>
....@@ -16,8 +12,6 @@
1612 #include <linux/io.h>
1713 #include <linux/clk.h>
1814 #include <linux/err.h>
19
-
20
-static struct clk *rng_clk;
2115
2216 static int nmk_rng_read(struct hwrng *rng, void *data, size_t max, bool wait)
2317 {
....@@ -40,48 +34,42 @@
4034
4135 static int nmk_rng_probe(struct amba_device *dev, const struct amba_id *id)
4236 {
37
+ struct clk *rng_clk;
4338 void __iomem *base;
4439 int ret;
4540
46
- rng_clk = devm_clk_get(&dev->dev, NULL);
41
+ rng_clk = devm_clk_get_enabled(&dev->dev, NULL);
4742 if (IS_ERR(rng_clk)) {
4843 dev_err(&dev->dev, "could not get rng clock\n");
4944 ret = PTR_ERR(rng_clk);
5045 return ret;
5146 }
5247
53
- clk_prepare_enable(rng_clk);
54
-
5548 ret = amba_request_regions(dev, dev->dev.init_name);
5649 if (ret)
57
- goto out_clk;
50
+ return ret;
5851 ret = -ENOMEM;
5952 base = devm_ioremap(&dev->dev, dev->res.start,
6053 resource_size(&dev->res));
6154 if (!base)
6255 goto out_release;
6356 nmk_rng.priv = (unsigned long)base;
64
- ret = hwrng_register(&nmk_rng);
57
+ ret = devm_hwrng_register(&dev->dev, &nmk_rng);
6558 if (ret)
6659 goto out_release;
6760 return 0;
6861
6962 out_release:
7063 amba_release_regions(dev);
71
-out_clk:
72
- clk_disable(rng_clk);
7364 return ret;
7465 }
7566
76
-static int nmk_rng_remove(struct amba_device *dev)
67
+static void nmk_rng_remove(struct amba_device *dev)
7768 {
78
- hwrng_unregister(&nmk_rng);
7969 amba_release_regions(dev);
80
- clk_disable(rng_clk);
81
- return 0;
8270 }
8371
84
-static struct amba_id nmk_rng_ids[] = {
72
+static const struct amba_id nmk_rng_ids[] = {
8573 {
8674 .id = 0x000805e1,
8775 .mask = 0x000fffff, /* top bits are rev and cfg: accept all */