diff mbox series

watchdog: wdat_wdt: Add timeout value as a param in ping method

Message ID 20231007082125.4699-1-xingtong_wu@163.com
State New
Headers show
Series watchdog: wdat_wdt: Add timeout value as a param in ping method | expand

Commit Message

Xing Tong Wu Oct. 7, 2023, 8:21 a.m. UTC
From: Xing Tong Wu <xingtong.wu@siemens.com>

According to the WDAT spec that states about WATCHDOG_ACTION_SET_COUNTDOWN_PERIOD:
"This action is required if WATCHDOG_ACTION_RESET does not explicitly write a new
countdown value to a register during a reset."
And that implies, WATCHDOG_ACTION_RESET may write a countdown value, thus may come
with a WATCHDOG_INSTRUCTION_WRITE_COUNTDOWN, thus need the timeout value as parameter
or would otherwise write 0.
The watchdog for SIONCT6126 need a entry WATCHDOG_INSTRUCTION_WRITE_COUNTDOWN for
WATCHDOG_ACTION_RESET action, I send this patch to support it.

Signed-off-by: Xing Tong Wu <xingtong.wu@siemens.com>
---
 drivers/watchdog/wdat_wdt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Guenter Roeck Oct. 7, 2023, 1:34 p.m. UTC | #1
On Sat, Oct 07, 2023 at 04:21:25PM +0800, Xing Tong Wu wrote:
> From: Xing Tong Wu <xingtong.wu@siemens.com>
> 
> According to the WDAT spec that states about WATCHDOG_ACTION_SET_COUNTDOWN_PERIOD:
> "This action is required if WATCHDOG_ACTION_RESET does not explicitly write a new
> countdown value to a register during a reset."
> And that implies, WATCHDOG_ACTION_RESET may write a countdown value, thus may come
> with a WATCHDOG_INSTRUCTION_WRITE_COUNTDOWN, thus need the timeout value as parameter
> or would otherwise write 0.
> The watchdog for SIONCT6126 need a entry WATCHDOG_INSTRUCTION_WRITE_COUNTDOWN for
> WATCHDOG_ACTION_RESET action, I send this patch to support it.
> 
> Signed-off-by: Xing Tong Wu <xingtong.wu@siemens.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  drivers/watchdog/wdat_wdt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c
> index 0ba99bed59fc..650fdc7996e1 100644
> --- a/drivers/watchdog/wdat_wdt.c
> +++ b/drivers/watchdog/wdat_wdt.c
> @@ -269,7 +269,7 @@ static int wdat_wdt_stop(struct watchdog_device *wdd)
>  
>  static int wdat_wdt_ping(struct watchdog_device *wdd)
>  {
> -	return wdat_wdt_run_action(to_wdat_wdt(wdd), ACPI_WDAT_RESET, 0, NULL);
> +	return wdat_wdt_run_action(to_wdat_wdt(wdd), ACPI_WDAT_RESET, wdd->timeout, NULL);
>  }
>  
>  static int wdat_wdt_set_timeout(struct watchdog_device *wdd,
> -- 
> 2.25.1
>
diff mbox series

Patch

diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c
index 0ba99bed59fc..650fdc7996e1 100644
--- a/drivers/watchdog/wdat_wdt.c
+++ b/drivers/watchdog/wdat_wdt.c
@@ -269,7 +269,7 @@  static int wdat_wdt_stop(struct watchdog_device *wdd)
 
 static int wdat_wdt_ping(struct watchdog_device *wdd)
 {
-	return wdat_wdt_run_action(to_wdat_wdt(wdd), ACPI_WDAT_RESET, 0, NULL);
+	return wdat_wdt_run_action(to_wdat_wdt(wdd), ACPI_WDAT_RESET, wdd->timeout, NULL);
 }
 
 static int wdat_wdt_set_timeout(struct watchdog_device *wdd,