hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/char/hw_random/nomadik-rng.c
....@@ -13,8 +13,6 @@
1313 #include <linux/clk.h>
1414 #include <linux/err.h>
1515
16
-static struct clk *rng_clk;
17
-
1816 static int nmk_rng_read(struct hwrng *rng, void *data, size_t max, bool wait)
1917 {
2018 void __iomem *base = (void __iomem *)rng->priv;
....@@ -36,21 +34,20 @@
3634
3735 static int nmk_rng_probe(struct amba_device *dev, const struct amba_id *id)
3836 {
37
+ struct clk *rng_clk;
3938 void __iomem *base;
4039 int ret;
4140
42
- rng_clk = devm_clk_get(&dev->dev, NULL);
41
+ rng_clk = devm_clk_get_enabled(&dev->dev, NULL);
4342 if (IS_ERR(rng_clk)) {
4443 dev_err(&dev->dev, "could not get rng clock\n");
4544 ret = PTR_ERR(rng_clk);
4645 return ret;
4746 }
4847
49
- clk_prepare_enable(rng_clk);
50
-
5148 ret = amba_request_regions(dev, dev->dev.init_name);
5249 if (ret)
53
- goto out_clk;
50
+ return ret;
5451 ret = -ENOMEM;
5552 base = devm_ioremap(&dev->dev, dev->res.start,
5653 resource_size(&dev->res));
....@@ -64,15 +61,12 @@
6461
6562 out_release:
6663 amba_release_regions(dev);
67
-out_clk:
68
- clk_disable_unprepare(rng_clk);
6964 return ret;
7065 }
7166
7267 static void nmk_rng_remove(struct amba_device *dev)
7368 {
7469 amba_release_regions(dev);
75
- clk_disable_unprepare(rng_clk);
7670 }
7771
7872 static const struct amba_id nmk_rng_ids[] = {