watchdog: Fix parent of watchdog devices
Subsystems (18)
cover watchdog: Fix parent of watchdog devices
Hi,
I posted a query here (https://lkml.org/lkml/2015/8/10/19), but did not get any feedback. So, thought to post patches and to seek response.
I need some way to identify the driver/module for a given watchdog node say /dev/watchdog0.
Documentation/watchdog/watchdog-api.txt says:
identity a string identifying the watchdog driver
However, all the watchdog driver does not define identity as DRV_NAME.
Otherway could be to look for /sys/class/watchdog/watchdog0/device/modalias.
However, many wdt devices does not set its parent and so, we do not see an entry for /sys/class/watchdog/watchdog0/device/ in sysfs.
This patch set fixes parent for wdt drivers written in watchdog-core framework.
Exceptions: booke, diag288, mpc8xxx, octeon, softdog and w83627hf -- They do not have any parent. Not sure, how we can identify driver for these devices.
~Pratyush
Pratyush Anand (37):
mei: wd: Fix parent of watchdog_device
watchdog: wm8350: Fix parent of watchdog_device
watchdog: wm831x: Fix parent of watchdog_device
watchdog: via: Fix parent of watchdog_device
watchdog: ux500: Fix parent of watchdog_device
watchdog: txx9wdt: Fix parent of watchdog_device
watchdog: twl4030: Fix parent of watchdog_device
watchdog: tegra: Fix parent of watchdog_device
watchdog: stmp3xxx_rtc: Fix parent of watchdog_device
watchdog: st_lpc: Fix parent of watchdog_device
watchdog: sp805: Fix parent of watchdog_device
watchdog: sirfsoc: Fix parent of watchdog_device
watchdog: sh: Fix parent of watchdog_device
watchdog: s3c2410: Fix parent of watchdog_device
watchdog: rt2880: Fix parent of watchdog_device
watchdog: retu: Fix parent of watchdog_device
watchdog: qcom: Fix parent of watchdog_device
watchdog: pnx4008: Fix parent of watchdog_device
watchdog: orion: Fix parent of watchdog_device
watchdog: omap: Fix parent of watchdog_device
watchdog: menf21bmc: Fix parent of watchdog_device
watchdog: mena21: Fix parent of watchdog_device
watchdog: jz4740: Fix parent of watchdog_device
watchdog: intel-mid: Fix parent of watchdog_device
watchdog: ie6xx: Fix parent of watchdog_device
watchdog: gpio: Fix parent of watchdog_device
watchdog: ep93xx: Fix parent of watchdog_device
watchdog: digicolor: Fix parent of watchdog_device
watchdog: davinci: Fix parent of watchdog_device
watchdog: da9063: Fix parent of watchdog_device
watchdog: da9062: Fix parent of watchdog_device
watchdog: da9055: Fix parent of watchdog_device
watchdog: da9052: Fix parent of watchdog_device
watchdog: coh901327: Fix parent of watchdog_device
watchdog: bcm_kona: Fix parent of watchdog_device
watchdog: bcm47xx: Fix parent of watchdog_device
watchdog: bcm2835: Fix parent of watchdog_device
drivers/misc/mei/wd.c | 1 + drivers/watchdog/bcm2835_wdt.c | 1 + drivers/watchdog/bcm47xx_wdt.c | 1 + drivers/watchdog/bcm_kona_wdt.c | 1 + drivers/watchdog/coh901327_wdt.c | 1 + drivers/watchdog/da9052_wdt.c | 1 + drivers/watchdog/da9055_wdt.c | 1 + drivers/watchdog/da9062_wdt.c | 1 + drivers/watchdog/da9063_wdt.c | 1 + drivers/watchdog/davinci_wdt.c | 1 + drivers/watchdog/digicolor_wdt.c | 1 + drivers/watchdog/ep93xx_wdt.c | 1 + drivers/watchdog/gpio_wdt.c | 1 + drivers/watchdog/ie6xx_wdt.c | 1 + drivers/watchdog/intel-mid_wdt.c | 1 + drivers/watchdog/jz4740_wdt.c | 1 + drivers/watchdog/mena21_wdt.c | 1 + drivers/watchdog/menf21bmc_wdt.c | 1 + drivers/watchdog/omap_wdt.c | 1 + drivers/watchdog/orion_wdt.c | 1 + drivers/watchdog/pnx4008_wdt.c | 1 + drivers/watchdog/qcom-wdt.c | 1 + drivers/watchdog/retu_wdt.c | 1 + drivers/watchdog/rt2880_wdt.c | 1 + drivers/watchdog/s3c2410_wdt.c | 1 + drivers/watchdog/shwdt.c | 1 + drivers/watchdog/sirfsoc_wdt.c | 1 + drivers/watchdog/sp805_wdt.c | 1 + drivers/watchdog/st_lpc_wdt.c | 1 + drivers/watchdog/stmp3xxx_rtc_wdt.c | 1 + drivers/watchdog/tegra_wdt.c | 1 + drivers/watchdog/twl4030_wdt.c | 1 + drivers/watchdog/txx9wdt.c | 1 + drivers/watchdog/ux500_wdt.c | 1 + drivers/watchdog/via_wdt.c | 1 + drivers/watchdog/wm831x_wdt.c | 1 + drivers/watchdog/wm8350_wdt.c | 1 + 37 files changed, 37 insertions(+)
Signature · 1 line
2.4.3
A message that is not in the archive (sent off-list or not yet received): cover.1439524806.git.panand-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
PATCH 8/37 watchdog: tegra: Fix parent of watchdog_device
Fix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/tegra_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/tegra_wdt.c +1 -0
@@ -218,6 +218,7 @@ static int tegra_wdt_probe(struct platform_device *pdev) wdd->ops = &tegra_wdt_ops; wdd->min_timeout =MIN_WDT_TIMEOUT ; wdd->max_timeout =MAX_WDT_TIMEOUT ; + wdd->parent = &pdev->dev;watchdog_set_drvdata (wdd, wdt);
Signature · 1 line
2.4.3
PATCH 1/37 mei: wd: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/misc/mei/wd.c | 1 + 1 file changed, 1 insertion(+)
drivers/misc/mei/wd.c +1 -0
@@ -364,6 +364,7 @@ int mei_watchdog_register(struct mei_device *dev)int ret; + amt_wd_dev.parent = dev->dev;/* unlock to perserve correct locking order */ mutex_unlock (&dev->device_lock); ret =watchdog_register_device (&amt_wd_dev);
Signature · 1 line
2.4.3
PATCH 2/37 watchdog: wm8350: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/wm8350_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/wm8350_wdt.c +1 -0
@@ -151,6 +151,7 @@ static int wm8350_wdt_probe(struct platform_device *pdev)watchdog_set_nowayout (&wm8350_wdt, nowayout);watchdog_set_drvdata (&wm8350_wdt, wm8350); + wm8350_wdt.parent = &pdev->dev;/* Default to 4s timeout */ wm8350_wdt_set_timeout (&wm8350_wdt,4 );
Signature · 1 line
2.4.3
PATCH 3/37 watchdog: wm831x: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/wm831x_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/wm831x_wdt.c +1 -0
@@ -215,6 +215,7 @@ static int wm831x_wdt_probe(struct platform_device *pdev) wm831x_wdt->info = &wm831x_wdt_info; wm831x_wdt->ops = &wm831x_wdt_ops; + wm831x_wdt->parent = &pdev->dev;watchdog_set_nowayout (wm831x_wdt, nowayout);watchdog_set_drvdata (wm831x_wdt, driver_data);
Signature · 1 line
2.4.3
PATCH 4/37 watchdog: via: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/via_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/via_wdt.c +1 -0
@@ -206,6 +206,7 @@ static int wdt_probe(struct pci_dev *pdev, timeout =WDT_TIMEOUT ; wdt_dev.timeout = timeout; + wdt_dev.parent = &pdev->dev;watchdog_set_nowayout (&wdt_dev, nowayout);if (readl (wdt_mem) &VIA_WDT_FIRED ) wdt_dev.bootstatus |=WDIOF_CARDRESET ;
Signature · 1 line
2.4.3
PATCH 5/37 watchdog: ux500: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/ux500_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/ux500_wdt.c +1 -0
@@ -96,6 +96,7 @@ static int ux500_wdt_probe(struct platform_device *pdev) ux500_wdt.max_timeout =WATCHDOG_MAX28 ; } + ux500_wdt.parent = &pdev->dev;watchdog_set_nowayout (&ux500_wdt, nowayout);/* disable auto off on sleep */
Signature · 1 line
2.4.3
PATCH 6/37 watchdog: txx9wdt: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/txx9wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/txx9wdt.c +1 -0
@@ -131,6 +131,7 @@ static int __init txx9wdt_probe(struct platform_device *dev) txx9wdt.timeout = timeout; txx9wdt.min_timeout =1 ; txx9wdt.max_timeout =WD_MAX_TIMEOUT ; + txx9wdt.parent = &pdev->dev;watchdog_set_nowayout (&txx9wdt, nowayout); ret =watchdog_register_device (&txx9wdt);
Signature · 1 line
2.4.3
PATCH 7/37 watchdog: twl4030: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/twl4030_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/twl4030_wdt.c +1 -0
@@ -83,6 +83,7 @@ static int twl4030_wdt_probe(struct platform_device *pdev) wdt->timeout =30 ; wdt->min_timeout =1 ; wdt->max_timeout =30 ; + wdt->parent = &pdev->dev;watchdog_set_nowayout (wdt, nowayout);platform_set_drvdata (pdev, wdt);
Signature · 1 line
2.4.3
PATCH 9/37 watchdog: stmp3xxx_rtc: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/stmp3xxx_rtc_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/stmp3xxx_rtc_wdt.c +1 -0
@@ -76,6 +76,7 @@ static int stmp3xxx_wdt_probe(struct platform_device *pdev)watchdog_set_drvdata (&stmp3xxx_wdd, &pdev->dev); stmp3xxx_wdd.timeout =clamp_t (unsigned, heartbeat,1 ,STMP3XXX_MAX_TIMEOUT ); + stmp3xxx_wdd.parent = &pdev->dev; ret =watchdog_register_device (&stmp3xxx_wdd);if (ret <0 ) {
Signature · 1 line
2.4.3
PATCH 10/37 watchdog: st_lpc: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/st_lpc_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/st_lpc_wdt.c +1 -0
@@ -241,6 +241,7 @@ static int st_wdog_probe(struct platform_device *pdev)return -EINVAL ; } st_wdog_dev.max_timeout =0xFFFFFFFF / st_wdog->clkrate; + st_wdog_dev.parent = &pdev->dev; ret =clk_prepare_enable (clk);if (ret) {
Signature · 1 line
2.4.3
Re: [PATCH 10/37] watchdog: st_lpc: Fix parent of watchdog_device
Quoted 9 lines · Pratyush Anand
Fix parent of
watchdog_deviceso that/sys/class/watchdog/watchdogn/deviceis populated.cc David Paris <[email protected]>cc Lee Jones <[email protected]>Signed-off-by Pratyush Anand <[email protected]>--- drivers/watchdog/st_lpc_wdt.c | 1 + 1 file changed, 1 insertion(+)
[Cc'ing the ST list, so they can have their say]
Looks reasonable. At least, it's what most of the other drivers do.
Quoted 12 lines
drivers/watchdog/st_lpc_wdt.c +1
-0@@ -241,6 +241,7 @@ static int st_wdog_probe(struct platform_device *pdev)return -EINVAL ; } st_wdog_dev.max_timeout =0xFFFFFFFF / st_wdog->clkrate; + st_wdog_dev.parent = &pdev->dev; ret =clk_prepare_enable (clk);if (ret) {
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
PATCH 11/37 watchdog: sp805: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/sp805_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/sp805_wdt.c +1 -0
@@ -226,6 +226,7 @@ sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id) wdt->adev = adev; wdt->wdd.info = &wdt_info; wdt->wdd.ops = &wdt_ops; + wdt->wdd.parent = &adev->dev;spin_lock_init (&wdt->lock);watchdog_set_nowayout (&wdt->wdd, nowayout);
Signature · 1 line
2.4.3
Re: [PATCH 11/37] watchdog: sp805: Fix parent of watchdog_device
Quoted 14 lines · Pratyush Anand
Fix parent of
watchdog_deviceso that/sys/class/watchdog/watchdogn/deviceis populated.cc Viresh Kumar <[email protected]>Signed-off-by Pratyush Anand <[email protected]>--- drivers/watchdog/sp805_wdt.c | 1 + 1 file changed, 1 insertion(+)drivers/watchdog/sp805_wdt.c +0
-0
drivers/watchdog/sp805_wdt.c sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id) · line 232
Quoted 7 lines
drivers/watchdog/sp805_wdt.c +1
-0@@ -226,6 +226,7 @@ sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id) wdt->adev = adev; wdt->wdd.info = &wdt_info; wdt->wdd.ops = &wdt_ops; + wdt->wdd.parent = &adev->dev;spin_lock_init (&wdt->lock);watchdog_set_nowayout (&wdt->wdd, nowayout);
Signature · 1 line
viresh
PATCH 12/37 watchdog: sirfsoc: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/sirfsoc_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/sirfsoc_wdt.c +1 -0
@@ -154,6 +154,7 @@ static int sirfsoc_wdt_probe(struct platform_device *pdev)watchdog_init_timeout (&sirfsoc_wdd, timeout, &pdev->dev);watchdog_set_nowayout (&sirfsoc_wdd, nowayout); + sirfsoc_wdd.parent = &pdev->dev; ret =watchdog_register_device (&sirfsoc_wdd);if (ret)
Signature · 1 line
2.4.3
PATCH 13/37 watchdog: sh: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/shwdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/shwdt.c +1 -0
@@ -252,6 +252,7 @@ static int sh_wdt_probe(struct platform_device *pdev)watchdog_set_nowayout (&sh_wdt_dev, nowayout);watchdog_set_drvdata (&sh_wdt_dev, wdt); + sh_wdt_dev.parent = &pdev->dev;spin_lock_init (&wdt->lock);
Signature · 1 line
2.4.3
PATCH 14/37 watchdog: s3c2410: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/s3c2410_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/s3c2410_wdt.c +1 -0
@@ -607,6 +607,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)watchdog_set_nowayout (&wdt->wdt_device, nowayout); wdt->wdt_device.bootstatus =s3c2410wdt_get_bootstatus (wdt); + wdt->wdt_device.parent = &pdev->dev; ret =watchdog_register_device (&wdt->wdt_device);if (ret) {
Signature · 1 line
2.4.3
PATCH 15/37 watchdog: rt2880: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/rt2880_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/rt2880_wdt.c +1 -0
@@ -161,6 +161,7 @@ static int rt288x_wdt_probe(struct platform_device *pdev) rt288x_wdt_dev.dev = &pdev->dev; rt288x_wdt_dev.bootstatus =rt288x_wdt_bootcause (); rt288x_wdt_dev.max_timeout = (0xfffful / rt288x_wdt_freq); + rt288x_wdt_dev.parent = &pdev->dev;watchdog_init_timeout (&rt288x_wdt_dev, rt288x_wdt_dev.max_timeout, &pdev->dev);
Signature · 1 line
2.4.3
PATCH 16/37 watchdog: retu: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/retu_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/retu_wdt.c +1 -0
@@ -127,6 +127,7 @@ static int retu_wdt_probe(struct platform_device *pdev) retu_wdt->timeout =RETU_WDT_MAX_TIMER ; retu_wdt->min_timeout =0 ; retu_wdt->max_timeout =RETU_WDT_MAX_TIMER ; + retu_wdt->parent = &pdev->dev;watchdog_set_drvdata (retu_wdt, wdev);watchdog_set_nowayout (retu_wdt, nowayout);
Signature · 1 line
2.4.3
PATCH 17/37 watchdog: qcom: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/qcom-wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/qcom-wdt.c +1 -0
@@ -171,6 +171,7 @@ static int qcom_wdt_probe(struct platform_device *pdev) wdt->wdd.ops = &qcom_wdt_ops; wdt->wdd.min_timeout =1 ; wdt->wdd.max_timeout =0x10000000U / wdt->rate; + wdt->wdd.parent = &pdev->dev;/* * If 'timeout-sec' unspecified in devicetree, assume a 30 second
Signature · 1 line
2.4.3
PATCH 18/37 watchdog: pnx4008: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/pnx4008_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/pnx4008_wdt.c +1 -0
@@ -167,6 +167,7 @@ static int pnx4008_wdt_probe(struct platform_device *pdev) pnx4008_wdd.bootstatus = (readl (WDTIM_RES (wdt_base)) &WDOG_RESET ) ?WDIOF_CARDRESET :0 ; + pnx4008_wdd.parent = &pdev->dev;watchdog_set_nowayout (&pnx4008_wdd, nowayout);pnx4008_wdt_stop (&pnx4008_wdd);/* disable for now */
Signature · 1 line
2.4.3
PATCH 19/37 watchdog: orion: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/orion_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/orion_wdt.c +1 -0
@@ -567,6 +567,7 @@ static int orion_wdt_probe(struct platform_device *pdev) dev->wdt.timeout = wdt_max_duration; dev->wdt.max_timeout = wdt_max_duration; + dev->wdt.parent = &pdev->dev;watchdog_init_timeout (&dev->wdt, heartbeat, &pdev->dev);platform_set_drvdata (pdev, &dev->wdt);
Signature · 1 line
2.4.3
PATCH 20/37 watchdog: omap: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/omap_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/omap_wdt.c +1 -0
@@ -253,6 +253,7 @@ static int omap_wdt_probe(struct platform_device *pdev) wdev->wdog.ops = &omap_wdt_ops; wdev->wdog.min_timeout =TIMER_MARGIN_MIN ; wdev->wdog.max_timeout =TIMER_MARGIN_MAX ; + wdev->wdog.parent = &pdev->dev;if (watchdog_init_timeout (&wdev->wdog, timer_margin, &pdev->dev) <0 ) wdev->wdog.timeout =TIMER_MARGIN_DEFAULT ;
Signature · 1 line
2.4.3
PATCH 21/37 watchdog: menf21bmc: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/menf21bmc_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/menf21bmc_wdt.c +1 -0
@@ -130,6 +130,7 @@ static int menf21bmc_wdt_probe(struct platform_device *pdev) drv_data->wdt.info = &menf21bmc_wdt_info; drv_data->wdt.min_timeout =BMC_WD_TIMEOUT_MIN ; drv_data->wdt.max_timeout =BMC_WD_TIMEOUT_MAX ; + drv_data->wdt.parent = &pdev->dev; drv_data->i2c_client = i2c_client;/*
Signature · 1 line
2.4.3
PATCH 22/37 watchdog: mena21: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/mena21_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/mena21_wdt.c +1 -0
@@ -197,6 +197,7 @@ static int a21_wdt_probe(struct platform_device *pdev)watchdog_init_timeout (&a21_wdt,30 , &pdev->dev);watchdog_set_nowayout (&a21_wdt, nowayout);watchdog_set_drvdata (&a21_wdt, drv); + a21_wdt.parent = &pdev->dev; reset =a21_wdt_get_bootstatus (drv);if (reset ==2 )
Signature · 1 line
2.4.3
Re: [PATCH 22/37] watchdog: mena21: Fix parent of watchdog_device
Quoted 14 lines · Pratyush Anand
Fix parent of
watchdog_deviceso that/sys/class/watchdog/watchdogn/deviceis populated.cc Johannes Thumshirn <[email protected]>Signed-off-by Pratyush Anand <[email protected]>--- drivers/watchdog/mena21_wdt.c | 1 + 1 file changed, 1 insertion(+)drivers/watchdog/mena21_wdt.c +0
-0
drivers/watchdog/mena21_wdt.c static int a21_wdt_probe(struct platform_device *pdev) · line 203
Quoted 7 lines
drivers/watchdog/mena21_wdt.c +1
-0@@ -197,6 +197,7 @@ static int a21_wdt_probe(struct platform_device *pdev)watchdog_init_timeout (&a21_wdt,30 , &pdev->dev);watchdog_set_nowayout (&a21_wdt, nowayout);watchdog_set_drvdata (&a21_wdt, drv); + a21_wdt.parent = &pdev->dev; reset =a21_wdt_get_bootstatus (drv);if (reset ==2 )
Good catch
Signature · 6 lines
Johannes Thumshirn Storage [email protected] +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
PATCH 23/37 watchdog: jz4740: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/jz4740_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/jz4740_wdt.c +1 -0
@@ -174,6 +174,7 @@ static int jz4740_wdt_probe(struct platform_device *pdev) jz4740_wdt->timeout = heartbeat; jz4740_wdt->min_timeout =1 ; jz4740_wdt->max_timeout =MAX_HEARTBEAT ; + jz4740_wdt->parent = &pdev->dev;watchdog_set_nowayout (jz4740_wdt, nowayout);watchdog_set_drvdata (jz4740_wdt, drvdata);
Signature · 1 line
2.4.3
PATCH 24/37 watchdog: intel-mid: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/intel-mid_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/intel-mid_wdt.c +1 -0
@@ -137,6 +137,7 @@ static int mid_wdt_probe(struct platform_device *pdev) wdt_dev->min_timeout =MID_WDT_TIMEOUT_MIN ; wdt_dev->max_timeout =MID_WDT_TIMEOUT_MAX ; wdt_dev->timeout =MID_WDT_DEFAULT_TIMEOUT ; + wdt_dev->parent = &pdev->dev;watchdog_set_drvdata (wdt_dev, &pdev->dev);platform_set_drvdata (pdev, wdt_dev);
Signature · 1 line
2.4.3
Re: [PATCH 24/37] watchdog: intel-mid: Fix parent of watchdog_device
Quoted 6 lines · Pratyush Anand
Fix parent of
watchdog_deviceso that/sys/class/watchdog/watchdogn/deviceis populated.cc David Cohen <[email protected]>Signed-off-by Pratyush Anand <[email protected]>---
PATCH 25/37 watchdog: ie6xx: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/ie6xx_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/ie6xx_wdt.c +1 -0
@@ -267,6 +267,7 @@ static int ie6xx_wdt_probe(struct platform_device *pdev) ie6xx_wdt_dev.timeout = timeout;watchdog_set_nowayout (&ie6xx_wdt_dev, nowayout); + ie6xx_wdt_dev.parent = &pdev->dev;spin_lock_init (&ie6xx_wdt_data.unlock_sequence);
Signature · 1 line
2.4.3
PATCH 26/37 watchdog: gpio: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/gpio_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/gpio_wdt.c +1 -0
@@ -217,6 +217,7 @@ static int gpio_wdt_probe(struct platform_device *pdev) priv->wdd.ops = &gpio_wdt_ops; priv->wdd.min_timeout =SOFT_TIMEOUT_MIN ; priv->wdd.max_timeout =SOFT_TIMEOUT_MAX ; + priv->wdd.parent = &pdev->dev;if (watchdog_init_timeout (&priv->wdd,0 , &pdev->dev) <0 ) priv->wdd.timeout =SOFT_TIMEOUT_DEF ;
Signature · 1 line
2.4.3
PATCH 27/37 watchdog: ep93xx: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/ep93xx_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/ep93xx_wdt.c +1 -0
@@ -132,6 +132,7 @@ static int ep93xx_wdt_probe(struct platform_device *pdev) val =readl (mmio_base +EP93XX_WATCHDOG ); ep93xx_wdt_wdd.bootstatus = (val &0x01 ) ?WDIOF_CARDRESET :0 ; ep93xx_wdt_wdd.timeout = timeout; + ep93xx_wdt_wdd.parent = &pdev->dev;watchdog_set_nowayout (&ep93xx_wdt_wdd, nowayout);
Signature · 1 line
2.4.3
PATCH 28/37 watchdog: digicolor: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/digicolor_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/digicolor_wdt.c +1 -0
@@ -143,6 +143,7 @@ static int dc_wdt_probe(struct platform_device *pdev) } dc_wdt_wdd.max_timeout =U32_MAX /clk_get_rate (wdt->clk); dc_wdt_wdd.timeout = dc_wdt_wdd.max_timeout; + dc_wdt_wdd.parent = &pdev->dev;spin_lock_init (&wdt->lock);
Signature · 1 line
2.4.3
Baruch Siach
maintainerRe: [PATCH 28/37] watchdog: digicolor: Fix parent of watchdog_device
Hi Pratyush Anand,
Quoted 14 lines · Pratyush Anand
Fix parent of
watchdog_deviceso that/sys/class/watchdog/watchdogn/deviceis populated.cc Baruch Siach <[email protected]>Signed-off-by Pratyush Anand <[email protected]>--- drivers/watchdog/digicolor_wdt.c | 1 + 1 file changed, 1 insertion(+)drivers/watchdog/digicolor_wdt.c +0
-0
drivers/watchdog/digicolor_wdt.c static int dc_wdt_probe(struct platform_device *pdev) · line 146
Quoted 4 lines
drivers/watchdog/digicolor_wdt.c +1
-0@@ -143,6 +143,7 @@ static int dc_wdt_probe(struct platform_device *pdev) } dc_wdt_wdd.max_timeout =U32_MAX /clk_get_rate (wdt->clk); dc_wdt_wdd.timeout = dc_wdt_wdd.max_timeout; + dc_wdt_wdd.parent = &pdev->dev;
Is there a reasonable way do this for all drivers (at least by default) in generic code?
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- [email protected] - tel: +972.2.679.5364, http://www.tkos.co.il -Re: [PATCH 28/37] watchdog: digicolor: Fix parent of watchdog_device
Hi Baruch,
Thanks a lot for the question.
Quoted 12 lines · Baruch Siach
Hi Pratyush Anand,
Quoted 9 lines · Pratyush Anand
Fix parent of
watchdog_deviceso that/sys/class/watchdog/watchdogn/deviceis populated.cc Baruch Siach <[email protected]>Signed-off-by Pratyush Anand <[email protected]>--- drivers/watchdog/digicolor_wdt.c | 1 + 1 file changed, 1 insertion(+)
Quoted 12 lines
drivers/watchdog/digicolor_wdt.c static int dc_wdt_probe(struct platform_device *pdev) · line 146
Quoted 9 lines
drivers/watchdog/digicolor_wdt.c +1
-0@@ -143,6 +143,7 @@ static int dc_wdt_probe(struct platform_device *pdev) } dc_wdt_wdd.max_timeout =U32_MAX /clk_get_rate (wdt->clk); dc_wdt_wdd.timeout = dc_wdt_wdd.max_timeout; + dc_wdt_wdd.parent = &pdev->dev;Is there a reasonable way do this for all drivers (at least by default) in generic code?
watchdog_register_device does not have a arg with strcut device *. Probably, we can do it in watchdog_init_timeout as a default. But, all the driver does not call watchdog_init_timeout :(
$ git grep watchdog_init_timeout drivers/watchdog/ | wc -l 29 $ git grep watchdog_register_device drivers/watchdog/ | wc -l 67
So, Other than the implementation in patch series,
I do not see a way either without changing watchdog_register_device prototype, or without calling watchdog_init_timeout from each driver.
~Pratyush
PATCH 29/37 watchdog: davinci: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/davinci_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/davinci_wdt.c +1 -0
@@ -179,6 +179,7 @@ static int davinci_wdt_probe(struct platform_device *pdev) wdd->min_timeout =1 ; wdd->max_timeout =MAX_HEARTBEAT ; wdd->timeout =DEFAULT_HEARTBEAT ; + wdd->parent = &pdev->dev;watchdog_init_timeout (wdd, heartbeat, dev);
Signature · 1 line
2.4.3
PATCH 30/37 watchdog: da9063: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/da9063_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/da9063_wdt.c +1 -0
@@ -175,6 +175,7 @@ static int da9063_wdt_probe(struct platform_device *pdev) wdt->wdtdev.min_timeout =DA9063_WDT_MIN_TIMEOUT ; wdt->wdtdev.max_timeout =DA9063_WDT_MAX_TIMEOUT ; wdt->wdtdev.timeout =DA9063_WDG_TIMEOUT ; + wdt->wdtdev.parent = &pdev->dev; wdt->wdtdev.status =WATCHDOG_NOWAYOUT_INIT_STATUS ;
Signature · 1 line
2.4.3
PATCH 31/37 watchdog: da9062: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/da9062_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/da9062_wdt.c +1 -0
@@ -210,6 +210,7 @@ static int da9062_wdt_probe(struct platform_device *pdev) wdt->wdtdev.max_timeout =DA9062_WDT_MAX_TIMEOUT ; wdt->wdtdev.timeout =DA9062_WDG_DEFAULT_TIMEOUT ; wdt->wdtdev.status =WATCHDOG_NOWAYOUT_INIT_STATUS ; + wdt->wdtdev.parent = &pdev->dev;watchdog_set_drvdata (&wdt->wdtdev, wdt);dev_set_drvdata (&pdev->dev, wdt);
Signature · 1 line
2.4.3
PATCH 32/37 watchdog: da9055: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/da9055_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/da9055_wdt.c +1 -0
@@ -161,6 +161,7 @@ static int da9055_wdt_probe(struct platform_device *pdev) da9055_wdt->timeout =DA9055_DEF_TIMEOUT ; da9055_wdt->info = &da9055_wdt_info; da9055_wdt->ops = &da9055_wdt_ops; + da9055_wdt->parent = &pdev->dev;watchdog_set_nowayout (da9055_wdt, nowayout);watchdog_set_drvdata (da9055_wdt, driver_data);
Signature · 1 line
2.4.3
PATCH 33/37 watchdog: da9052: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/da9052_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/da9052_wdt.c +1 -0
@@ -195,6 +195,7 @@ static int da9052_wdt_probe(struct platform_device *pdev) da9052_wdt->timeout =DA9052_DEF_TIMEOUT ; da9052_wdt->info = &da9052_wdt_info; da9052_wdt->ops = &da9052_wdt_ops; + da9052_wdt->parent = &pdev->dev;watchdog_set_drvdata (da9052_wdt, driver_data);kref_init (&driver_data->kref);
Signature · 1 line
2.4.3
PATCH 34/37 watchdog: coh901327: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/coh901327_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/coh901327_wdt.c +1 -0
@@ -358,6 +358,7 @@ static int __init coh901327_probe(struct platform_device *pdev)if (ret <0 ) coh901327_wdt.timeout =60 ; + coh901327_wdt.parent = &pdev->dev; ret =watchdog_register_device (&coh901327_wdt);if (ret ==0 ) dev_info(&pdev->dev,
Signature · 1 line
2.4.3
PATCH 35/37 watchdog: bcm_kona: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/bcm_kona_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/bcm_kona_wdt.c +1 -0
@@ -319,6 +319,7 @@ static int bcm_kona_wdt_probe(struct platform_device *pdev)spin_lock_init (&wdt->lock);platform_set_drvdata (pdev, 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 );if (ret) {
Signature · 1 line
2.4.3
PATCH 36/37 watchdog: bcm47xx: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/bcm47xx_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/bcm47xx_wdt.c +1 -0
@@ -209,6 +209,7 @@ static int bcm47xx_wdt_probe(struct platform_device *pdev) wdt->wdd.info = &bcm47xx_wdt_info; wdt->wdd.timeout =WDT_DEFAULT_TIME ; + wdt->wdd.parent = &pdev->dev; ret = wdt->wdd.ops->set_timeout (&wdt->wdd, timeout);if (ret) goto err_timer;
Signature · 1 line
2.4.3
PATCH 37/37 watchdog: bcm2835: Fix parent of watchdog_device
In reply to Pratyush AnandFix parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated.
--- drivers/watchdog/bcm2835_wdt.c | 1 + 1 file changed, 1 insertion(+)
drivers/watchdog/bcm2835_wdt.c +1 -0
@@ -182,6 +182,7 @@ static int bcm2835_wdt_probe(struct platform_device *pdev)watchdog_set_drvdata (&bcm2835_wdt_wdd, wdt);watchdog_init_timeout (&bcm2835_wdt_wdd, heartbeat, dev);watchdog_set_nowayout (&bcm2835_wdt_wdd, nowayout); + bcm2835_wdt_wdd.parent = &pdev->dev; err =watchdog_register_device (&bcm2835_wdt_wdd);if (err) {dev_err (dev,"Failed to register watchdog device" );
Signature · 1 line
2.4.3
Re: [PATCH 37/37] watchdog: bcm2835: Fix parent of watchdog_device
Quoted 6 lines · Pratyush Anand
Fix parent of
watchdog_deviceso that/sys/class/watchdog/watchdogn/device
is populated.cc Lubomir Rintel <[email protected]>Signed-off-by Pratyush Anand <[email protected]>
Thank you!
Quoted 18 lines
--- drivers/watchdog/bcm2835_wdt.c | 1 + 1 file changed, 1 insertion(+)drivers/watchdog/bcm2835_wdt.c +1
-0@@ -182,6 +182,7 @@ static int bcm2835_wdt_probe(struct platform_device *pdev) watchdog_set_drvdata(&bcm2835_wdt_wdd, wdt);watchdog_init_timeout (&bcm2835_wdt_wdd, heartbeat, dev);watchdog_set_nowayout (&bcm2835_wdt_wdd, nowayout); + bcm2835_wdt_wdd.parent = &pdev->dev; err =watchdog_register_device (&bcm2835_wdt_wdd);if (err) {
dev_err(dev, "Failed to register watchdog device");
Guenter Roeck
maintainerQuoted 15 lines · Pratyush Anand
Hi,
I posted a query here (https://lkml.org/lkml/2015/8/10/19), but did not get any feedback. So, thought to post patches and to seek response.
I need some way to identify the driver/module for a given watchdog node say
/dev/watchdog0.
Documentation/watchdog/watchdog-api.txtsays:
identity a string identifying the watchdog driverHowever, all the watchdog driver does not define identity as
DRV_NAME.Otherway could be to look for
/sys/class/watchdog/watchdog0/device/modalias.
Quoted 8 lines
However, many wdt devices does not set its parent and so, we do not see an entry for
/sys/class/watchdog/watchdog0/device/in sysfs.This patch set fixes parent for wdt drivers written in watchdog-core framework.
Exceptions: booke, diag288, mpc8xxx, octeon, softdog and w83627hf -- They do not have any parent. Not sure, how we can identify driver for these devices.
Series makes sense, but imposes a huge burden on the maintainer.
I think this is one of those changes where a single patch would make much more sense.
I merged all patches into my test repository for build and runtime tests, but I would suggest to resubmit the series as a single patch.
Thanks,
Guenter
Quoted 3 lines · Guenter Roeck
I merged all patches into my test repository for build and runtime tests, but I would suggest to resubmit the series as a single patch.
OK.. I squashed all of them and sent as V2.
~Pratyush