* [PATCH v2 0/2] Add Mediatek watchdog suspend resume and shutdown @ 2015-07-23 5:49 Eddie Huang 2015-07-23 5:49 ` [PATCH v2 1/2] watchdog: add wdt suspend/resume support Eddie Huang 2015-07-23 5:49 ` [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled Eddie Huang 0 siblings, 2 replies; 10+ messages in thread From: Eddie Huang @ 2015-07-23 5:49 UTC (permalink / raw) To: linux-arm-kernel This series add Mediatek watchdog suspend, resume and shutdown support. These patches are based on v4.2-rc1 Change in v2: Use watchdog_active() to check whether watchdog been active. Change to register suspend,resume function to dev_pm_ops Greta Zhang (2): watchdog: add wdt suspend/resume support watchdog: add wdt shutdown callback to disable wdt if enabled drivers/watchdog/mtk_wdt.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) -- 1.8.1.1.dirty ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/2] watchdog: add wdt suspend/resume support 2015-07-23 5:49 [PATCH v2 0/2] Add Mediatek watchdog suspend resume and shutdown Eddie Huang @ 2015-07-23 5:49 ` Eddie Huang 2015-07-23 16:10 ` Guenter Roeck 2015-07-23 17:36 ` Matthias Brugger 2015-07-23 5:49 ` [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled Eddie Huang 1 sibling, 2 replies; 10+ messages in thread From: Eddie Huang @ 2015-07-23 5:49 UTC (permalink / raw) To: linux-arm-kernel From: Greta Zhang <greta.zhang@mediatek.com> add wdt driver suspend/resume support Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> Signed-off-by: Roger Lu <roger.lu@mediatek.com> Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> --- drivers/watchdog/mtk_wdt.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c index 938b987..056412c 100644 --- a/drivers/watchdog/mtk_wdt.c +++ b/drivers/watchdog/mtk_wdt.c @@ -221,17 +221,47 @@ static int mtk_wdt_remove(struct platform_device *pdev) return 0; } +#ifdef CONFIG_PM_SLEEP +static int mtk_wdt_suspend(struct device *dev) +{ + struct mtk_wdt_dev *mtk_wdt = dev_get_drvdata(dev); + + if (watchdog_active(&mtk_wdt->wdt_dev)) + mtk_wdt_stop(&mtk_wdt->wdt_dev); + + return 0; +} + +static int mtk_wdt_resume(struct device *dev) +{ + struct mtk_wdt_dev *mtk_wdt = dev_get_drvdata(dev); + + if (watchdog_active(&mtk_wdt->wdt_dev)) { + mtk_wdt_start(&mtk_wdt->wdt_dev); + mtk_wdt_ping(&mtk_wdt->wdt_dev); + } + + return 0; +} +#endif + static const struct of_device_id mtk_wdt_dt_ids[] = { { .compatible = "mediatek,mt6589-wdt" }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, mtk_wdt_dt_ids); +static const struct dev_pm_ops mtk_wdt_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(mtk_wdt_suspend, + mtk_wdt_resume) +}; + static struct platform_driver mtk_wdt_driver = { .probe = mtk_wdt_probe, .remove = mtk_wdt_remove, .driver = { .name = DRV_NAME, + .pm = &mtk_wdt_pm_ops, .of_match_table = mtk_wdt_dt_ids, }, }; -- 1.8.1.1.dirty ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 1/2] watchdog: add wdt suspend/resume support 2015-07-23 5:49 ` [PATCH v2 1/2] watchdog: add wdt suspend/resume support Eddie Huang @ 2015-07-23 16:10 ` Guenter Roeck 2015-07-23 17:36 ` Matthias Brugger 1 sibling, 0 replies; 10+ messages in thread From: Guenter Roeck @ 2015-07-23 16:10 UTC (permalink / raw) To: linux-arm-kernel On 07/22/2015 10:49 PM, Eddie Huang wrote: > From: Greta Zhang <greta.zhang@mediatek.com> > > add wdt driver suspend/resume support > > Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> > Signed-off-by: Roger Lu <roger.lu@mediatek.com> > Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> Subject line should identify the driver, ie mtk_wdt. "wdt" doesn't really help. Other than that, Reviewed-by: Guenter Roeck <linux@roeck-us.net> Guenter > --- > drivers/watchdog/mtk_wdt.c | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c > index 938b987..056412c 100644 > --- a/drivers/watchdog/mtk_wdt.c > +++ b/drivers/watchdog/mtk_wdt.c > @@ -221,17 +221,47 @@ static int mtk_wdt_remove(struct platform_device *pdev) > return 0; > } > > +#ifdef CONFIG_PM_SLEEP > +static int mtk_wdt_suspend(struct device *dev) > +{ > + struct mtk_wdt_dev *mtk_wdt = dev_get_drvdata(dev); > + > + if (watchdog_active(&mtk_wdt->wdt_dev)) > + mtk_wdt_stop(&mtk_wdt->wdt_dev); > + > + return 0; > +} > + > +static int mtk_wdt_resume(struct device *dev) > +{ > + struct mtk_wdt_dev *mtk_wdt = dev_get_drvdata(dev); > + > + if (watchdog_active(&mtk_wdt->wdt_dev)) { > + mtk_wdt_start(&mtk_wdt->wdt_dev); > + mtk_wdt_ping(&mtk_wdt->wdt_dev); > + } > + > + return 0; > +} > +#endif > + > static const struct of_device_id mtk_wdt_dt_ids[] = { > { .compatible = "mediatek,mt6589-wdt" }, > { /* sentinel */ } > }; > MODULE_DEVICE_TABLE(of, mtk_wdt_dt_ids); > > +static const struct dev_pm_ops mtk_wdt_pm_ops = { > + SET_SYSTEM_SLEEP_PM_OPS(mtk_wdt_suspend, > + mtk_wdt_resume) > +}; > + > static struct platform_driver mtk_wdt_driver = { > .probe = mtk_wdt_probe, > .remove = mtk_wdt_remove, > .driver = { > .name = DRV_NAME, > + .pm = &mtk_wdt_pm_ops, > .of_match_table = mtk_wdt_dt_ids, > }, > }; > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/2] watchdog: add wdt suspend/resume support 2015-07-23 5:49 ` [PATCH v2 1/2] watchdog: add wdt suspend/resume support Eddie Huang 2015-07-23 16:10 ` Guenter Roeck @ 2015-07-23 17:36 ` Matthias Brugger 1 sibling, 0 replies; 10+ messages in thread From: Matthias Brugger @ 2015-07-23 17:36 UTC (permalink / raw) To: linux-arm-kernel On Thursday, July 23, 2015 01:49:10 PM Eddie Huang wrote: > From: Greta Zhang <greta.zhang@mediatek.com> > > add wdt driver suspend/resume support > > Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> > Signed-off-by: Roger Lu <roger.lu@mediatek.com> > Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> > --- > drivers/watchdog/mtk_wdt.c | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > Acked-by: Matthias Brugger <matthias.bgg@gmail.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled 2015-07-23 5:49 [PATCH v2 0/2] Add Mediatek watchdog suspend resume and shutdown Eddie Huang 2015-07-23 5:49 ` [PATCH v2 1/2] watchdog: add wdt suspend/resume support Eddie Huang @ 2015-07-23 5:49 ` Eddie Huang 2015-07-23 16:12 ` Guenter Roeck 2015-07-23 17:37 ` Matthias Brugger 1 sibling, 2 replies; 10+ messages in thread From: Eddie Huang @ 2015-07-23 5:49 UTC (permalink / raw) To: linux-arm-kernel From: Greta Zhang <greta.zhang@mediatek.com> Without .shutdown(), watchdog might reset the system during power off. For example, if watchdog's timeout is set to 30s, then it is reset to zero by mtk_wdt_ping(). During power off, no app will ping watchdog, but watchdog is still running and may trigger reset. Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> --- drivers/watchdog/mtk_wdt.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c index 056412c..6ad9df9 100644 --- a/drivers/watchdog/mtk_wdt.c +++ b/drivers/watchdog/mtk_wdt.c @@ -210,6 +210,14 @@ static int mtk_wdt_probe(struct platform_device *pdev) return 0; } +static void mtk_wdt_shutdown(struct platform_device *pdev) +{ + struct mtk_wdt_dev *mtk_wdt = platform_get_drvdata(pdev); + + if (watchdog_active(&mtk_wdt->wdt_dev)) + mtk_wdt_stop(&mtk_wdt->wdt_dev); +} + static int mtk_wdt_remove(struct platform_device *pdev) { struct mtk_wdt_dev *mtk_wdt = platform_get_drvdata(pdev); @@ -259,6 +267,7 @@ static const struct dev_pm_ops mtk_wdt_pm_ops = { static struct platform_driver mtk_wdt_driver = { .probe = mtk_wdt_probe, .remove = mtk_wdt_remove, + .shutdown = mtk_wdt_shutdown, .driver = { .name = DRV_NAME, .pm = &mtk_wdt_pm_ops, -- 1.8.1.1.dirty ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled 2015-07-23 5:49 ` [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled Eddie Huang @ 2015-07-23 16:12 ` Guenter Roeck 2015-07-23 17:37 ` Matthias Brugger 1 sibling, 0 replies; 10+ messages in thread From: Guenter Roeck @ 2015-07-23 16:12 UTC (permalink / raw) To: linux-arm-kernel On 07/22/2015 10:49 PM, Eddie Huang wrote: > From: Greta Zhang <greta.zhang@mediatek.com> > > Without .shutdown(), watchdog might reset the system during power off. > For example, if watchdog's timeout is set to 30s, then it is reset to > zero by mtk_wdt_ping(). During power off, no app will ping watchdog, > but watchdog is still running and may trigger reset. > > Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> > Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> Except for the subject line, Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > drivers/watchdog/mtk_wdt.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c > index 056412c..6ad9df9 100644 > --- a/drivers/watchdog/mtk_wdt.c > +++ b/drivers/watchdog/mtk_wdt.c > @@ -210,6 +210,14 @@ static int mtk_wdt_probe(struct platform_device *pdev) > return 0; > } > > +static void mtk_wdt_shutdown(struct platform_device *pdev) > +{ > + struct mtk_wdt_dev *mtk_wdt = platform_get_drvdata(pdev); > + > + if (watchdog_active(&mtk_wdt->wdt_dev)) > + mtk_wdt_stop(&mtk_wdt->wdt_dev); > +} > + > static int mtk_wdt_remove(struct platform_device *pdev) > { > struct mtk_wdt_dev *mtk_wdt = platform_get_drvdata(pdev); > @@ -259,6 +267,7 @@ static const struct dev_pm_ops mtk_wdt_pm_ops = { > static struct platform_driver mtk_wdt_driver = { > .probe = mtk_wdt_probe, > .remove = mtk_wdt_remove, > + .shutdown = mtk_wdt_shutdown, > .driver = { > .name = DRV_NAME, > .pm = &mtk_wdt_pm_ops, > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled 2015-07-23 5:49 ` [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled Eddie Huang 2015-07-23 16:12 ` Guenter Roeck @ 2015-07-23 17:37 ` Matthias Brugger 2015-08-11 4:28 ` Daniel Kurtz 1 sibling, 1 reply; 10+ messages in thread From: Matthias Brugger @ 2015-07-23 17:37 UTC (permalink / raw) To: linux-arm-kernel On Thursday, July 23, 2015 01:49:11 PM Eddie Huang wrote: > From: Greta Zhang <greta.zhang@mediatek.com> > > Without .shutdown(), watchdog might reset the system during power off. > For example, if watchdog's timeout is set to 30s, then it is reset to > zero by mtk_wdt_ping(). During power off, no app will ping watchdog, > but watchdog is still running and may trigger reset. > > Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> > Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> > --- > drivers/watchdog/mtk_wdt.c | 9 +++++++++ > 1 file changed, 9 insertions(+) Acked-by: Matthias Brugger <matthias.bgg@gmail.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled 2015-07-23 17:37 ` Matthias Brugger @ 2015-08-11 4:28 ` Daniel Kurtz 2015-08-11 4:42 ` Guenter Roeck 0 siblings, 1 reply; 10+ messages in thread From: Daniel Kurtz @ 2015-08-11 4:28 UTC (permalink / raw) To: linux-arm-kernel Hi Guenter, Matthias, On Fri, Jul 24, 2015 at 1:37 AM, Matthias Brugger <matthias.bgg@gmail.com> wrote: > On Thursday, July 23, 2015 01:49:11 PM Eddie Huang wrote: >> From: Greta Zhang <greta.zhang@mediatek.com> >> >> Without .shutdown(), watchdog might reset the system during power off. >> For example, if watchdog's timeout is set to 30s, then it is reset to >> zero by mtk_wdt_ping(). During power off, no app will ping watchdog, >> but watchdog is still running and may trigger reset. >> >> Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> >> Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> >> --- >> drivers/watchdog/mtk_wdt.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) > > Acked-by: Matthias Brugger <matthias.bgg@gmail.com> is the plan to land these two patches via Guenter's watchdog tree [0]? [0] git://www.linux-watchdog.org/linux-watchdog.git In fact, though, I don't see any new patches in that repository. The only branches I see are: remotes/wdog/master b953c0d Linux 4.1 remotes/wdog/winbond-superio dc89871 Sample Winbond Super-I/O MFD device consisting out of a lowel-level driver that does the detection and creates the platform-data and a watchdog driver. Am I looking in the wrong place? -Dan > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled 2015-08-11 4:28 ` Daniel Kurtz @ 2015-08-11 4:42 ` Guenter Roeck 2015-08-11 7:38 ` Daniel Kurtz 0 siblings, 1 reply; 10+ messages in thread From: Guenter Roeck @ 2015-08-11 4:42 UTC (permalink / raw) To: linux-arm-kernel On 08/10/2015 09:28 PM, Daniel Kurtz wrote: > Hi Guenter, Matthias, > > On Fri, Jul 24, 2015 at 1:37 AM, Matthias Brugger > <matthias.bgg@gmail.com> wrote: >> On Thursday, July 23, 2015 01:49:11 PM Eddie Huang wrote: >>> From: Greta Zhang <greta.zhang@mediatek.com> >>> >>> Without .shutdown(), watchdog might reset the system during power off. >>> For example, if watchdog's timeout is set to 30s, then it is reset to >>> zero by mtk_wdt_ping(). During power off, no app will ping watchdog, >>> but watchdog is still running and may trigger reset. >>> >>> Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> >>> Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> >>> --- >>> drivers/watchdog/mtk_wdt.c | 9 +++++++++ >>> 1 file changed, 9 insertions(+) >> >> Acked-by: Matthias Brugger <matthias.bgg@gmail.com> > > is the plan to land these two patches via Guenter's watchdog tree [0]? > [0] git://www.linux-watchdog.org/linux-watchdog.git > That is Wim's tree, and Wim is the maintainer ;-). I have the patches queued in my tree [1], and I plan to send a pull request to Wim this week or early next week. Guenter --- [1] https://git.kernel.org/cgit/linux/kernel/git/groeck/linux-staging.git/log/?h=watchdog-next ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled 2015-08-11 4:42 ` Guenter Roeck @ 2015-08-11 7:38 ` Daniel Kurtz 0 siblings, 0 replies; 10+ messages in thread From: Daniel Kurtz @ 2015-08-11 7:38 UTC (permalink / raw) To: linux-arm-kernel On Tue, Aug 11, 2015 at 12:42 PM, Guenter Roeck <linux@roeck-us.net> wrote: > On 08/10/2015 09:28 PM, Daniel Kurtz wrote: >> >> Hi Guenter, Matthias, >> >> On Fri, Jul 24, 2015 at 1:37 AM, Matthias Brugger >> <matthias.bgg@gmail.com> wrote: >>> >>> On Thursday, July 23, 2015 01:49:11 PM Eddie Huang wrote: >>>> >>>> From: Greta Zhang <greta.zhang@mediatek.com> >>>> >>>> Without .shutdown(), watchdog might reset the system during power off. >>>> For example, if watchdog's timeout is set to 30s, then it is reset to >>>> zero by mtk_wdt_ping(). During power off, no app will ping watchdog, >>>> but watchdog is still running and may trigger reset. >>>> >>>> Signed-off-by: Greta Zhang <greta.zhang@mediatek.com> >>>> Signed-off-by: Eddie Huang <eddie.huang@mediatek.com> >>>> --- >>>> drivers/watchdog/mtk_wdt.c | 9 +++++++++ >>>> 1 file changed, 9 insertions(+) >>> >>> >>> Acked-by: Matthias Brugger <matthias.bgg@gmail.com> >> >> >> is the plan to land these two patches via Guenter's watchdog tree [0]? >> [0] git://www.linux-watchdog.org/linux-watchdog.git >> > That is Wim's tree, and Wim is the maintainer ;-). No wonder! Thanks for cluing me in. > I have the patches queued in my tree [1], and I plan to send a pull request > to Wim this week or early next week. Great! Thanks, -Dan > Guenter > > --- > [1] > https://git.kernel.org/cgit/linux/kernel/git/groeck/linux-staging.git/log/?h=watchdog-next > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-08-11 7:38 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-07-23 5:49 [PATCH v2 0/2] Add Mediatek watchdog suspend resume and shutdown Eddie Huang 2015-07-23 5:49 ` [PATCH v2 1/2] watchdog: add wdt suspend/resume support Eddie Huang 2015-07-23 16:10 ` Guenter Roeck 2015-07-23 17:36 ` Matthias Brugger 2015-07-23 5:49 ` [PATCH v2 2/2] watchdog: add wdt shutdown callback to disable wdt if enabled Eddie Huang 2015-07-23 16:12 ` Guenter Roeck 2015-07-23 17:37 ` Matthias Brugger 2015-08-11 4:28 ` Daniel Kurtz 2015-08-11 4:42 ` Guenter Roeck 2015-08-11 7:38 ` Daniel Kurtz
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).