All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Christopher Bostic <cbostic@linux.vnet.ibm.com>
Cc: wim@iguana.be, robh+dt@kernel.org, mark.rutland@arm.com,
	joel@jms.id.au, linux-watchdog@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] drivers/watchdog: ASPEED reference dev tree properties for config
Date: Wed, 28 Jun 2017 08:08:46 -0700	[thread overview]
Message-ID: <20170628150846.GE30968@roeck-us.net> (raw)
In-Reply-To: <38e57720-9728-9377-2a16-adc8ce430ca0@linux.vnet.ibm.com>

On Wed, Jun 28, 2017 at 09:59:22AM -0500, Christopher Bostic wrote:
> 
> 
> On 6/28/17 9:54 AM, Guenter Roeck wrote:
> >On Wed, Jun 28, 2017 at 09:29:50AM -0500, Christopher Bostic wrote:
> >>
> >>On 6/28/17 6:31 AM, Guenter Roeck wrote:
> >>>On 06/27/2017 02:17 PM, Christopher Bostic wrote:
> >>>>Reference the system device tree when configuring the watchdog
> >>>>engines.  Set external signal mode on timeout if specified.
> >>>>Set system reset on timeout if specified.
> >>>>
> >>>>Signed-off-by: Christopher Bostic <cbostic@linux.vnet.ibm.com>
> >>>>---
> >>>>v2 - Change of_get_property() to of_property_read_bool()
> >>>>    - Remove redundant check for NULL struct device_node pointer
> >>>>    - Optional property names now start with prefix 'aspeed,'
> >>>>---
> >>>>  drivers/watchdog/aspeed_wdt.c | 13 +++++++++++--
> >>>>  1 file changed, 11 insertions(+), 2 deletions(-)
> >>>>
> >>>>diff --git a/drivers/watchdog/aspeed_wdt.c
> >>>>b/drivers/watchdog/aspeed_wdt.c
> >>>>index 1c65258..71ce5f5 100644
> >>>>--- a/drivers/watchdog/aspeed_wdt.c
> >>>>+++ b/drivers/watchdog/aspeed_wdt.c
> >>>>@@ -140,6 +140,7 @@ static int aspeed_wdt_probe(struct platform_device
> >>>>*pdev)
> >>>>  {
> >>>>      struct aspeed_wdt *wdt;
> >>>>      struct resource *res;
> >>>>+    struct device_node *np;
> >>>>      int ret;
> >>>>        wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL);
> >>>>@@ -170,8 +171,16 @@ static int aspeed_wdt_probe(struct platform_device
> >>>>*pdev)
> >>>>       * the SOC and not the full chip
> >>>>       */
> >>>>      wdt->ctrl = WDT_CTRL_RESET_MODE_SOC |
> >>>>-        WDT_CTRL_1MHZ_CLK |
> >>>>-        WDT_CTRL_RESET_SYSTEM;
> >>>>+        WDT_CTRL_1MHZ_CLK;
> >>>>+
> >>>>+    np = pdev->dev.of_node;
> >>>>+    if (of_property_read_bool(np, "aspeed,sys-reset"))
> >>>>+        wdt->ctrl |= WDT_CTRL_RESET_SYSTEM;
> >>>>+
> >>>For backward compatibility, this should default to WDT_CTRL_RESET_SYSTEM
> >>>if no optional property is provided.
> >>>
> >>I had the logic inverted for this property in a previous patch.  The
> >>property was 'no-system-reset' so that when not present the default was to
> >>set WDT_CTRL_RESET_SYSTEM.   As it is in this patch, the only way to
> >>indicate that no system reset is to be done is to not specify the property.
> >>No system reset is desired under circumstances when another wdt engine is to
> >>be responsible for this.   Given the issue with backward compatibility
> >>that's not a solution.  Given this, would creating a property
> >>'no-system-reset' be acceptable?
> >>
> >Sorry, I fail to see the problem. There are half a dozen properties. What is the
> >problem with having a default if no property is specified ? Your default is "do
> >nothing", which does not really make any sense to me. If the user wants the
> >watchdog to do nothing, the simple means to accomplish that would be to not
> >instantiate it.
> >
> >Sure, that means specifying "system-reset" is redundant, but I don't see a
> >problem with that either. But I do see a problem with loading a watchdog driver
> >that doesn't do anything.
> >
> >If there is really some use case where it makes sense to load a watchdog driver
> >and have it do nothing, please explain and provide a respective devicetree
> >property. "aspeed,do-nothing" (or whatever similar) doesn't sound good, but
> >at least makes it obvious that the driver isn't doing anything besides
> >creating a false sense of "the system is watchdog protected".
> If system-reset is not wanted there are other properties that might still be
> needed, for example
> ARM reset only.   We'd still want to instantiate it.
> 
But then you would presumably specify that property, so there would be one.
The question here is what to do if _no_ property is provided.

Sorry, I don't get your point.

Guenter

> Thanks,
> Chris
> >
> >Thanks,
> >Guenter
> >
> >
> >>Thanks,
> >>Chris
> >>
> >>>>+    if (of_property_read_bool(np, "aspeed,external-signal"))
> >>>>+        wdt->ctrl |= WDT_CTRL_WDT_EXT;
> >>>>+
> >>>>+    writel(wdt->ctrl, wdt->base + WDT_CTRL);
> >>>>        if (readl(wdt->base + WDT_CTRL) & WDT_CTRL_ENABLE)  {
> >>>>          aspeed_wdt_start(&wdt->wdd);
> >>>>
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2017-06-28 15:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-27 21:17 [PATCH v2 0/2] Add ASPEED watchdog device tree properties Christopher Bostic
2017-06-27 21:17 ` Christopher Bostic
2017-06-27 21:17 ` [PATCH v2 1/2] drivers/watchdog: Add optional ASPEED " Christopher Bostic
2017-06-27 21:17   ` Christopher Bostic
2017-06-27 21:32   ` Guenter Roeck
2017-06-27 21:32     ` Guenter Roeck
2017-06-27 21:42     ` Christopher Bostic
2017-06-27 21:42       ` Christopher Bostic
2017-06-27 22:07       ` Guenter Roeck
2017-06-27 22:07         ` Guenter Roeck
2017-06-28 14:55         ` Christopher Bostic
2017-06-28 14:55           ` Christopher Bostic
2017-06-28 15:06           ` Guenter Roeck
2017-06-28 15:06             ` Guenter Roeck
2017-06-27 21:17 ` [PATCH v2 2/2] drivers/watchdog: ASPEED reference dev tree properties for config Christopher Bostic
2017-06-27 21:17   ` Christopher Bostic
2017-06-28 11:31   ` Guenter Roeck
2017-06-28 11:31     ` Guenter Roeck
2017-06-28 14:29     ` Christopher Bostic
2017-06-28 14:29       ` Christopher Bostic
2017-06-28 14:54       ` Guenter Roeck
2017-06-28 14:54         ` Guenter Roeck
2017-06-28 14:59         ` Christopher Bostic
2017-06-28 14:59           ` Christopher Bostic
2017-06-28 15:08           ` Guenter Roeck [this message]
2017-06-28 15:55             ` Christopher Bostic
2017-06-28 15:55               ` Christopher Bostic
2017-06-28 16:06               ` Guenter Roeck
2017-06-28 16:06                 ` Guenter Roeck
2017-06-28 16:09                 ` Christopher Bostic
2017-06-28 16:09                   ` Christopher Bostic
2017-06-28 17:52                   ` Guenter Roeck
2017-06-28 17:52                     ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170628150846.GE30968@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=cbostic@linux.vnet.ibm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=joel@jms.id.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=wim@iguana.be \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.