[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210219105447.GI2542@lahna.fi.intel.com>
Date: Fri, 19 Feb 2021 12:54:47 +0200
From: Mika Westerberg <mika.westerberg@...ux.intel.com>
To: Flavio Suligoi <f.suligoi@...m.it>
Cc: Wim Van Sebroeck <wim@...ux-watchdog.org>,
Guenter Roeck <linux@...ck-us.net>,
linux-watchdog@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] watchdog: wdat: add param. to start wdog on module
insertion
Hi,
On Thu, Feb 18, 2021 at 05:32:00PM +0100, Flavio Suligoi wrote:
> Add the parameter "start_enable" to start the watchdog
> directly on module insertion.
>
> In an embedded system, for some applications, the watchdog
> must be activated as soon as possible.
>
> In some embedded x86 boards the watchdog can be activated
> directly by the BIOS (with an appropriate setting of the
> BIOS setup). In other cases, when this BIOS feature is not
> present, the possibility to start the watchdog immediately
> after the module loading can be very useful.
>
> Signed-off-by: Flavio Suligoi <f.suligoi@...m.it>
> ---
> drivers/watchdog/wdat_wdt.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c
> index cec7917790e5..b990d0197d2e 100644
> --- a/drivers/watchdog/wdat_wdt.c
> +++ b/drivers/watchdog/wdat_wdt.c
> @@ -61,6 +61,12 @@ module_param(timeout, int, 0);
> MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds (default="
> __MODULE_STRING(WDAT_DEFAULT_TIMEOUT) ")");
>
> +#define START_DEFAULT 0
> +static int start_enabled = START_DEFAULT;
> +module_param(start_enabled, int, 0);
> +MODULE_PARM_DESC(start_enabled, "Watchdog is started on module insertion "
> + "(default=" __MODULE_STRING(START_DEFAULT) ")");
> +
> static int wdat_wdt_read(struct wdat_wdt *wdat,
> const struct wdat_instruction *instr, u32 *value)
> {
> @@ -437,6 +443,8 @@ static int wdat_wdt_probe(struct platform_device *pdev)
> }
>
> wdat_wdt_boot_status(wdat);
> + if (start_enabled)
> + wdat_wdt_start(&wdat->wdd);
No objections to this if it is really needed. However, I think it is
better start the watchdog after devm_watchdog_register_device() has been
called so we have everything initialized.
> wdat_wdt_set_running(wdat);
>
> ret = wdat_wdt_enable_reboot(wdat);
> --
> 2.25.1
Powered by blists - more mailing lists