From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from arroyo.ext.ti.com ([192.94.94.40]:55957 "EHLO arroyo.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751030Ab3KROWo (ORCPT ); Mon, 18 Nov 2013 09:22:44 -0500 Message-ID: <528A2252.7040605@ti.com> Date: Mon, 18 Nov 2013 16:21:06 +0200 From: "ivan.khoronzhuk" MIME-Version: 1.0 To: Guenter Roeck , Santosh Shilimkar , , , , CC: , , , , , , , , Subject: Re: Fwd: [PATCH 4/8] watchdog: davinci: add GET_STATUS option support References: <1383680783-12114-5-git-send-email-ivan.khoronzhuk@ti.com> <527A28CE.2070802@ti.com> <528828E7.6060404@roeck-us.net> In-Reply-To: <528828E7.6060404@roeck-us.net> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Sender: linux-watchdog-owner@vger.kernel.org List-Id: linux-watchdog@vger.kernel.org On 11/17/2013 04:24 AM, Guenter Roeck wrote: > On 11/06/2013 03:32 AM, ivan.khoronzhuk wrote: >> When watchdog timer is expired we can know about it thought > > thought -> through or with > Ok >> GET_STATUS ioctl option. >> >> Signed-off-by: Ivan Khoronzhuk >> --- >> drivers/watchdog/davinci_wdt.c | 13 +++++++++++++ >> 1 file changed, 13 insertions(+) >> >> diff --git a/drivers/watchdog/davinci_wdt.c >> b/drivers/watchdog/davinci_wdt.c >> index 6cbf2e1..a371b2d 100644 >> --- a/drivers/watchdog/davinci_wdt.c >> +++ b/drivers/watchdog/davinci_wdt.c >> @@ -144,6 +144,18 @@ static unsigned int >> davinci_wdt_get_timeleft(struct watchdog_device *wdd) >> return wdd->timeout - timer_counter; >> } >> >> +static unsigned int davinci_wdt_status(struct watchdog_device *wdd) >> +{ >> + u32 val; >> + struct davinci_wdt_device *davinci_wdt = watchdog_get_drvdata(wdd); >> + >> + val = ioread32(davinci_wdt->base + WDTCR); >> + if (val & WDFLAG) >> + return WDIOF_CARDRESET; >> + > "Card previously reset the CPU" > > Is this really accurate / correct ? > > My understanding is that the status is supposed to return the reason for > a previous reset/reboot, > not the curent condition. > Actually it is not so good correlate with the purpose, but I grasped several examples like watchdog/pcwd.c; watchdog/w83977f_wdt.c; watchdog/of_xilinx_wdt.c and saw that I can use it in meaning "the card initiated reset. After the WDT is overflowed it sets WDFLAG, so I can use it. It is more useful while debugging and if it is doubtful I can drop it. >> + return 0; >> +} >> + >> static const struct watchdog_info davinci_wdt_info = { >> .options = WDIOF_KEEPALIVEPING, >> .identity = "DaVinci Watchdog", >> @@ -155,6 +167,7 @@ static const struct watchdog_ops davinci_wdt_ops = { >> .stop = davinci_wdt_ping, >> .ping = davinci_wdt_ping, >> .get_timeleft = davinci_wdt_get_timeleft, >> + .status = davinci_wdt_status, >> }; >> >> static int davinci_wdt_probe(struct platform_device *pdev) >> > -- Regards, Ivan Khoronzhuk From mboxrd@z Thu Jan 1 00:00:00 1970 From: ivan.khoronzhuk@ti.com (ivan.khoronzhuk) Date: Mon, 18 Nov 2013 16:21:06 +0200 Subject: Fwd: [PATCH 4/8] watchdog: davinci: add GET_STATUS option support In-Reply-To: <528828E7.6060404@roeck-us.net> References: <1383680783-12114-5-git-send-email-ivan.khoronzhuk@ti.com> <527A28CE.2070802@ti.com> <528828E7.6060404@roeck-us.net> Message-ID: <528A2252.7040605@ti.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 11/17/2013 04:24 AM, Guenter Roeck wrote: > On 11/06/2013 03:32 AM, ivan.khoronzhuk wrote: >> When watchdog timer is expired we can know about it thought > > thought -> through or with > Ok >> GET_STATUS ioctl option. >> >> Signed-off-by: Ivan Khoronzhuk >> --- >> drivers/watchdog/davinci_wdt.c | 13 +++++++++++++ >> 1 file changed, 13 insertions(+) >> >> diff --git a/drivers/watchdog/davinci_wdt.c >> b/drivers/watchdog/davinci_wdt.c >> index 6cbf2e1..a371b2d 100644 >> --- a/drivers/watchdog/davinci_wdt.c >> +++ b/drivers/watchdog/davinci_wdt.c >> @@ -144,6 +144,18 @@ static unsigned int >> davinci_wdt_get_timeleft(struct watchdog_device *wdd) >> return wdd->timeout - timer_counter; >> } >> >> +static unsigned int davinci_wdt_status(struct watchdog_device *wdd) >> +{ >> + u32 val; >> + struct davinci_wdt_device *davinci_wdt = watchdog_get_drvdata(wdd); >> + >> + val = ioread32(davinci_wdt->base + WDTCR); >> + if (val & WDFLAG) >> + return WDIOF_CARDRESET; >> + > "Card previously reset the CPU" > > Is this really accurate / correct ? > > My understanding is that the status is supposed to return the reason for > a previous reset/reboot, > not the curent condition. > Actually it is not so good correlate with the purpose, but I grasped several examples like watchdog/pcwd.c; watchdog/w83977f_wdt.c; watchdog/of_xilinx_wdt.c and saw that I can use it in meaning "the card initiated reset. After the WDT is overflowed it sets WDFLAG, so I can use it. It is more useful while debugging and if it is doubtful I can drop it. >> + return 0; >> +} >> + >> static const struct watchdog_info davinci_wdt_info = { >> .options = WDIOF_KEEPALIVEPING, >> .identity = "DaVinci Watchdog", >> @@ -155,6 +167,7 @@ static const struct watchdog_ops davinci_wdt_ops = { >> .stop = davinci_wdt_ping, >> .ping = davinci_wdt_ping, >> .get_timeleft = davinci_wdt_get_timeleft, >> + .status = davinci_wdt_status, >> }; >> >> static int davinci_wdt_probe(struct platform_device *pdev) >> > -- Regards, Ivan Khoronzhuk From mboxrd@z Thu Jan 1 00:00:00 1970 From: "ivan.khoronzhuk" Subject: Re: Fwd: [PATCH 4/8] watchdog: davinci: add GET_STATUS option support Date: Mon, 18 Nov 2013 16:21:06 +0200 Message-ID: <528A2252.7040605@ti.com> References: <1383680783-12114-5-git-send-email-ivan.khoronzhuk@ti.com> <527A28CE.2070802@ti.com> <528828E7.6060404@roeck-us.net> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <528828E7.6060404-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org> Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Guenter Roeck , Santosh Shilimkar , wim-IQzOog9fTRqzQB+pC5nmwQ@public.gmane.org, nsekhar-l0cyMroinI0@public.gmane.org, linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org, pawel.moll-5wv7dgnIgG8@public.gmane.org, mark.rutland-5wv7dgnIgG8@public.gmane.org, swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org, galak-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: devicetree@vger.kernel.org On 11/17/2013 04:24 AM, Guenter Roeck wrote: > On 11/06/2013 03:32 AM, ivan.khoronzhuk wrote: >> When watchdog timer is expired we can know about it thought > > thought -> through or with > Ok >> GET_STATUS ioctl option. >> >> Signed-off-by: Ivan Khoronzhuk >> --- >> drivers/watchdog/davinci_wdt.c | 13 +++++++++++++ >> 1 file changed, 13 insertions(+) >> >> diff --git a/drivers/watchdog/davinci_wdt.c >> b/drivers/watchdog/davinci_wdt.c >> index 6cbf2e1..a371b2d 100644 >> --- a/drivers/watchdog/davinci_wdt.c >> +++ b/drivers/watchdog/davinci_wdt.c >> @@ -144,6 +144,18 @@ static unsigned int >> davinci_wdt_get_timeleft(struct watchdog_device *wdd) >> return wdd->timeout - timer_counter; >> } >> >> +static unsigned int davinci_wdt_status(struct watchdog_device *wdd) >> +{ >> + u32 val; >> + struct davinci_wdt_device *davinci_wdt = watchdog_get_drvdata(wdd); >> + >> + val = ioread32(davinci_wdt->base + WDTCR); >> + if (val & WDFLAG) >> + return WDIOF_CARDRESET; >> + > "Card previously reset the CPU" > > Is this really accurate / correct ? > > My understanding is that the status is supposed to return the reason for > a previous reset/reboot, > not the curent condition. > Actually it is not so good correlate with the purpose, but I grasped several examples like watchdog/pcwd.c; watchdog/w83977f_wdt.c; watchdog/of_xilinx_wdt.c and saw that I can use it in meaning "the card initiated reset. After the WDT is overflowed it sets WDFLAG, so I can use it. It is more useful while debugging and if it is doubtful I can drop it. >> + return 0; >> +} >> + >> static const struct watchdog_info davinci_wdt_info = { >> .options = WDIOF_KEEPALIVEPING, >> .identity = "DaVinci Watchdog", >> @@ -155,6 +167,7 @@ static const struct watchdog_ops davinci_wdt_ops = { >> .stop = davinci_wdt_ping, >> .ping = davinci_wdt_ping, >> .get_timeleft = davinci_wdt_get_timeleft, >> + .status = davinci_wdt_status, >> }; >> >> static int davinci_wdt_probe(struct platform_device *pdev) >> > -- Regards, Ivan Khoronzhuk -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html