summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2017-01-10 18:22:01 -0500
committerGuenter Roeck <linux@roeck-us.net>2017-02-24 17:00:23 -0500
commit30cba9a109feb0dbb262d575ae33be8c16d7d26f (patch)
tree2cc646c2a132903fd900a42e5b3c120f09e80b32 /drivers/watchdog
parentdd36f6ce680d55fcafa62b35e589549cd53199b1 (diff)
watchdog: wm831x_wdt: Convert to use device managed functions
Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Replace 'goto l; ... l: return e;' with 'return e;' - Replace 'val = e; return val;' with 'return e;' - Drop assignments to otherwise unused variables - Replace 'if (e) { return expr; }' with 'if (e) return expr;' - Drop remove function - Drop platform_set_drvdata() - Use devm_watchdog_register_driver() to register watchdog device Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/wm831x_wdt.c31
1 files changed, 7 insertions, 24 deletions
diff --git a/drivers/watchdog/wm831x_wdt.c b/drivers/watchdog/wm831x_wdt.c
index 8d1184aee932..1ddc1f742cd4 100644
--- a/drivers/watchdog/wm831x_wdt.c
+++ b/drivers/watchdog/wm831x_wdt.c
@@ -194,7 +194,7 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
194 if (ret < 0) { 194 if (ret < 0) {
195 dev_err(wm831x->dev, "Failed to read watchdog status: %d\n", 195 dev_err(wm831x->dev, "Failed to read watchdog status: %d\n",
196 ret); 196 ret);
197 goto err; 197 return ret;
198 } 198 }
199 reg = ret; 199 reg = ret;
200 200
@@ -203,10 +203,8 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
203 203
204 driver_data = devm_kzalloc(&pdev->dev, sizeof(*driver_data), 204 driver_data = devm_kzalloc(&pdev->dev, sizeof(*driver_data),
205 GFP_KERNEL); 205 GFP_KERNEL);
206 if (!driver_data) { 206 if (!driver_data)
207 ret = -ENOMEM; 207 return -ENOMEM;
208 goto err;
209 }
210 208
211 mutex_init(&driver_data->lock); 209 mutex_init(&driver_data->lock);
212 driver_data->wm831x = wm831x; 210 driver_data->wm831x = wm831x;
@@ -253,7 +251,7 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
253 dev_err(wm831x->dev, 251 dev_err(wm831x->dev,
254 "Failed to request update GPIO: %d\n", 252 "Failed to request update GPIO: %d\n",
255 ret); 253 ret);
256 goto err; 254 return ret;
257 } 255 }
258 256
259 driver_data->update_gpio = pdata->update_gpio; 257 driver_data->update_gpio = pdata->update_gpio;
@@ -269,37 +267,22 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
269 } else { 267 } else {
270 dev_err(wm831x->dev, 268 dev_err(wm831x->dev,
271 "Failed to unlock security key: %d\n", ret); 269 "Failed to unlock security key: %d\n", ret);
272 goto err; 270 return ret;
273 } 271 }
274 } 272 }
275 273
276 ret = watchdog_register_device(&driver_data->wdt); 274 ret = devm_watchdog_register_device(&pdev->dev, &driver_data->wdt);
277 if (ret != 0) { 275 if (ret != 0) {
278 dev_err(wm831x->dev, "watchdog_register_device() failed: %d\n", 276 dev_err(wm831x->dev, "watchdog_register_device() failed: %d\n",
279 ret); 277 ret);
280 goto err; 278 return ret;
281 } 279 }
282 280
283 platform_set_drvdata(pdev, driver_data);
284
285 return 0;
286
287err:
288 return ret;
289}
290
291static int wm831x_wdt_remove(struct platform_device *pdev)
292{
293 struct wm831x_wdt_drvdata *driver_data = platform_get_drvdata(pdev);
294
295 watchdog_unregister_device(&driver_data->wdt);
296
297 return 0; 281 return 0;
298} 282}
299 283
300static struct platform_driver wm831x_wdt_driver = { 284static struct platform_driver wm831x_wdt_driver = {
301 .probe = wm831x_wdt_probe, 285 .probe = wm831x_wdt_probe,
302 .remove = wm831x_wdt_remove,
303 .driver = { 286 .driver = {
304 .name = "wm831x-watchdog", 287 .name = "wm831x-watchdog",
305 }, 288 },