hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/char/hw_random/st-rng.c
....@@ -42,7 +42,6 @@
4242
4343 struct st_rng_data {
4444 void __iomem *base;
45
- struct clk *clk;
4645 struct hwrng ops;
4746 };
4847
....@@ -85,39 +84,22 @@
8584 if (IS_ERR(base))
8685 return PTR_ERR(base);
8786
88
- clk = devm_clk_get(&pdev->dev, NULL);
87
+ clk = devm_clk_get_enabled(&pdev->dev, NULL);
8988 if (IS_ERR(clk))
9089 return PTR_ERR(clk);
91
-
92
- ret = clk_prepare_enable(clk);
93
- if (ret)
94
- return ret;
9590
9691 ddata->ops.priv = (unsigned long)ddata;
9792 ddata->ops.read = st_rng_read;
9893 ddata->ops.name = pdev->name;
9994 ddata->base = base;
100
- ddata->clk = clk;
101
-
102
- dev_set_drvdata(&pdev->dev, ddata);
10395
10496 ret = devm_hwrng_register(&pdev->dev, &ddata->ops);
10597 if (ret) {
10698 dev_err(&pdev->dev, "Failed to register HW RNG\n");
107
- clk_disable_unprepare(clk);
10899 return ret;
109100 }
110101
111102 dev_info(&pdev->dev, "Successfully registered HW RNG\n");
112
-
113
- return 0;
114
-}
115
-
116
-static int st_rng_remove(struct platform_device *pdev)
117
-{
118
- struct st_rng_data *ddata = dev_get_drvdata(&pdev->dev);
119
-
120
- clk_disable_unprepare(ddata->clk);
121103
122104 return 0;
123105 }
....@@ -134,7 +116,6 @@
134116 .of_match_table = of_match_ptr(st_rng_match),
135117 },
136118 .probe = st_rng_probe,
137
- .remove = st_rng_remove
138119 };
139120
140121 module_platform_driver(st_rng_driver);