Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+7 -24
+7 -24
drivers/watchdog/wm831x_wdt.c
··· 194 194 if (ret < 0) { 195 195 dev_err(wm831x->dev, "Failed to read watchdog status: %d\n", 196 196 ret); 197 - goto err; 197 + return ret; 198 198 } 199 199 reg = ret; 200 200 ··· 203 203 204 204 driver_data = devm_kzalloc(&pdev->dev, sizeof(*driver_data), 205 205 GFP_KERNEL); 206 - if (!driver_data) { 207 - ret = -ENOMEM; 208 - goto err; 209 - } 206 + if (!driver_data) 207 + return -ENOMEM; 210 208 211 209 mutex_init(&driver_data->lock); 212 210 driver_data->wm831x = wm831x; ··· 251 253 dev_err(wm831x->dev, 252 254 "Failed to request update GPIO: %d\n", 253 255 ret); 254 - goto err; 256 + return ret; 255 257 } 256 258 257 259 driver_data->update_gpio = pdata->update_gpio; ··· 267 269 } else { 268 270 dev_err(wm831x->dev, 269 271 "Failed to unlock security key: %d\n", ret); 270 - goto err; 272 + return ret; 271 273 } 272 274 } 273 275 274 - ret = watchdog_register_device(&driver_data->wdt); 276 + ret = devm_watchdog_register_device(&pdev->dev, &driver_data->wdt); 275 277 if (ret != 0) { 276 278 dev_err(wm831x->dev, "watchdog_register_device() failed: %d\n", 277 279 ret); 278 - goto err; 280 + return ret; 279 281 } 280 - 281 - platform_set_drvdata(pdev, driver_data); 282 - 283 - return 0; 284 - 285 - err: 286 - return ret; 287 - } 288 - 289 - static int wm831x_wdt_remove(struct platform_device *pdev) 290 - { 291 - struct wm831x_wdt_drvdata *driver_data = platform_get_drvdata(pdev); 292 - 293 - watchdog_unregister_device(&driver_data->wdt); 294 282 295 283 return 0; 296 284 } 297 285 298 286 static struct platform_driver wm831x_wdt_driver = { 299 287 .probe = wm831x_wdt_probe, 300 - .remove = wm831x_wdt_remove, 301 288 .driver = { 302 289 .name = "wm831x-watchdog", 303 290 },