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

Commit 6551881c authored by Pratyush Anand's avatar Pratyush Anand Committed by Wim Van Sebroeck
Browse files

Watchdog: Fix parent of watchdog_devices



/sys/class/watchdog/watchdogn/device/modalias can help to identify the
driver/module for a given watchdog node. However, many wdt devices do not
set their parent and so, we do not see an entry for device in sysfs for
such devices.

This patch fixes parent of watchdog_device so that
/sys/class/watchdog/watchdogn/device is populated.

Exceptions: booke, diag288, octeon, softdog and w83627hf -- They do not
have any parent. Not sure, how we can identify driver for these devices.

Signed-off-by: default avatarPratyush Anand <panand@redhat.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
Acked-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: default avatarLee Jones <lee.jones@linaro.org>
Acked-by: default avatarLubomir Rintel <lkundrak@v3.sk>
Acked-by: default avatarMaxime Coquelin <maxime.coquelin@st.com>
Acked-by: default avatarThierry Reding <treding@nvidia.com>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent bf5125d5
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -364,6 +364,7 @@ int mei_watchdog_register(struct mei_device *dev)


	int ret;
	int ret;


	amt_wd_dev.parent = dev->dev;
	/* unlock to perserve correct locking order */
	/* unlock to perserve correct locking order */
	mutex_unlock(&dev->device_lock);
	mutex_unlock(&dev->device_lock);
	ret = watchdog_register_device(&amt_wd_dev);
	ret = watchdog_register_device(&amt_wd_dev);
+1 −0
Original line number Original line Diff line number Diff line
@@ -182,6 +182,7 @@ static int bcm2835_wdt_probe(struct platform_device *pdev)
	watchdog_set_drvdata(&bcm2835_wdt_wdd, wdt);
	watchdog_set_drvdata(&bcm2835_wdt_wdd, wdt);
	watchdog_init_timeout(&bcm2835_wdt_wdd, heartbeat, dev);
	watchdog_init_timeout(&bcm2835_wdt_wdd, heartbeat, dev);
	watchdog_set_nowayout(&bcm2835_wdt_wdd, nowayout);
	watchdog_set_nowayout(&bcm2835_wdt_wdd, nowayout);
	bcm2835_wdt_wdd.parent = &pdev->dev;
	err = watchdog_register_device(&bcm2835_wdt_wdd);
	err = watchdog_register_device(&bcm2835_wdt_wdd);
	if (err) {
	if (err) {
		dev_err(dev, "Failed to register watchdog device");
		dev_err(dev, "Failed to register watchdog device");
+1 −0
Original line number Original line Diff line number Diff line
@@ -209,6 +209,7 @@ static int bcm47xx_wdt_probe(struct platform_device *pdev)


	wdt->wdd.info = &bcm47xx_wdt_info;
	wdt->wdd.info = &bcm47xx_wdt_info;
	wdt->wdd.timeout = WDT_DEFAULT_TIME;
	wdt->wdd.timeout = WDT_DEFAULT_TIME;
	wdt->wdd.parent = &pdev->dev;
	ret = wdt->wdd.ops->set_timeout(&wdt->wdd, timeout);
	ret = wdt->wdd.ops->set_timeout(&wdt->wdd, timeout);
	if (ret)
	if (ret)
		goto err_timer;
		goto err_timer;
+1 −0
Original line number Original line Diff line number Diff line
@@ -319,6 +319,7 @@ static int bcm_kona_wdt_probe(struct platform_device *pdev)
	spin_lock_init(&wdt->lock);
	spin_lock_init(&wdt->lock);
	platform_set_drvdata(pdev, wdt);
	platform_set_drvdata(pdev, wdt);
	watchdog_set_drvdata(&bcm_kona_wdt_wdd, wdt);
	watchdog_set_drvdata(&bcm_kona_wdt_wdd, wdt);
	bcm_kona_wdt_wdd.parent = &pdev->dev;


	ret = bcm_kona_wdt_set_timeout_reg(&bcm_kona_wdt_wdd, 0);
	ret = bcm_kona_wdt_set_timeout_reg(&bcm_kona_wdt_wdd, 0);
	if (ret) {
	if (ret) {
+1 −0
Original line number Original line Diff line number Diff line
@@ -358,6 +358,7 @@ static int __init coh901327_probe(struct platform_device *pdev)
	if (ret < 0)
	if (ret < 0)
		coh901327_wdt.timeout = 60;
		coh901327_wdt.timeout = 60;


	coh901327_wdt.parent = &pdev->dev;
	ret = watchdog_register_device(&coh901327_wdt);
	ret = watchdog_register_device(&coh901327_wdt);
	if (ret == 0)
	if (ret == 0)
		dev_info(&pdev->dev,
		dev_info(&pdev->dev,
Loading