Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 076bad7c authored by Mark Brown's avatar Mark Brown Committed by Wim Van Sebroeck
Browse files

watchdog: Handle multiple wm831x watchdogs being registered



Due to the whole single instance based watchdog API we use static data
for the wm831x watchdog which means that if the system tries to register
a second one we end up trying to register the same miscdevice again,
corrupting the miscdevice list. Work around this by checking for duplicate
registrations until we get a watchdog core.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent b0af8dfd
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -320,6 +320,11 @@ static int __devinit wm831x_wdt_probe(struct platform_device *pdev)
	struct wm831x_watchdog_pdata *pdata;
	int reg, ret;

	if (wm831x) {
		dev_err(&pdev->dev, "wm831x watchdog already registered\n");
		return -EBUSY;
	}

	wm831x = dev_get_drvdata(pdev->dev.parent);

	ret = wm831x_reg_read(wm831x, WM831X_WATCHDOG);