hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/drivers/watchdog/sirfsoc_wdt.c
....@@ -1,9 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Watchdog driver for CSR SiRFprimaII and SiRFatlasVI
34 *
45 * Copyright (c) 2013 Cambridge Silicon Radio Limited, a CSR plc group company.
5
- *
6
- * Licensed under GPLv2 or later.
76 */
87
98 #include <linux/module.h>
....@@ -146,40 +145,28 @@
146145
147146 static int sirfsoc_wdt_probe(struct platform_device *pdev)
148147 {
149
- struct resource *res;
148
+ struct device *dev = &pdev->dev;
150149 int ret;
151150 void __iomem *base;
152151
153
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
154
- base = devm_ioremap_resource(&pdev->dev, res);
152
+ base = devm_platform_ioremap_resource(pdev, 0);
155153 if (IS_ERR(base))
156154 return PTR_ERR(base);
157155
158156 watchdog_set_drvdata(&sirfsoc_wdd, (__force void *)base);
159157
160
- watchdog_init_timeout(&sirfsoc_wdd, timeout, &pdev->dev);
158
+ watchdog_init_timeout(&sirfsoc_wdd, timeout, dev);
161159 watchdog_set_nowayout(&sirfsoc_wdd, nowayout);
162
- sirfsoc_wdd.parent = &pdev->dev;
160
+ sirfsoc_wdd.parent = dev;
163161
164
- ret = watchdog_register_device(&sirfsoc_wdd);
162
+ watchdog_stop_on_reboot(&sirfsoc_wdd);
163
+ watchdog_stop_on_unregister(&sirfsoc_wdd);
164
+ ret = devm_watchdog_register_device(dev, &sirfsoc_wdd);
165165 if (ret)
166166 return ret;
167167
168168 platform_set_drvdata(pdev, &sirfsoc_wdd);
169169
170
- return 0;
171
-}
172
-
173
-static void sirfsoc_wdt_shutdown(struct platform_device *pdev)
174
-{
175
- struct watchdog_device *wdd = platform_get_drvdata(pdev);
176
-
177
- sirfsoc_wdt_disable(wdd);
178
-}
179
-
180
-static int sirfsoc_wdt_remove(struct platform_device *pdev)
181
-{
182
- sirfsoc_wdt_shutdown(pdev);
183170 return 0;
184171 }
185172
....@@ -220,8 +207,6 @@
220207 .of_match_table = sirfsoc_wdt_of_match,
221208 },
222209 .probe = sirfsoc_wdt_probe,
223
- .remove = sirfsoc_wdt_remove,
224
- .shutdown = sirfsoc_wdt_shutdown,
225210 };
226211 module_platform_driver(sirfsoc_wdt_driver);
227212