diff mbox series

watchdog: Fix OMAP watchdog early handling

Message ID 88a8fe5229cd68fa0f1fd22f5d66666c1b7057a0.camel@duagon.com (mailing list archive)
State Accepted
Headers show
Series watchdog: Fix OMAP watchdog early handling | expand

Commit Message

Walter Stoll Oct. 14, 2021, 10:22 a.m. UTC
TI's implementation does not service the watchdog even if the kernel
command line parameter omap_wdt.early_enable is set to 1. This patch
fixes the issue.

Signed-off-by: Walter Stoll <walter.stoll@duagon.com>
---
 drivers/watchdog/omap_wdt.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Guenter Roeck Oct. 14, 2021, 8:18 p.m. UTC | #1
On Thu, Oct 14, 2021 at 12:22:29PM +0200, Walter Stoll wrote:
> 
> TI's implementation does not service the watchdog even if the kernel
> command line parameter omap_wdt.early_enable is set to 1. This patch
> fixes the issue.
> 
> Signed-off-by: Walter Stoll <walter.stoll@duagon.com>

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

> ---
>  drivers/watchdog/omap_wdt.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
> index 1616f93dfad7..74d785b2b478 100644
> --- a/drivers/watchdog/omap_wdt.c
> +++ b/drivers/watchdog/omap_wdt.c
> @@ -268,8 +268,12 @@ static int omap_wdt_probe(struct platform_device *pdev)
>  			wdev->wdog.bootstatus = WDIOF_CARDRESET;
>  	}
>  
> -	if (!early_enable)
> +	if (early_enable) {
> +		omap_wdt_start(&wdev->wdog);
> +		set_bit(WDOG_HW_RUNNING, &wdev->wdog.status);
> +	} else {
>  		omap_wdt_disable(wdev);
> +	}
>  
>  	ret = watchdog_register_device(&wdev->wdog);
>  	if (ret) {
> -- 
> 2.33.0
> 
>
diff mbox series

Patch

diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index 1616f93dfad7..74d785b2b478 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -268,8 +268,12 @@  static int omap_wdt_probe(struct platform_device *pdev)
 			wdev->wdog.bootstatus = WDIOF_CARDRESET;
 	}
 
-	if (!early_enable)
+	if (early_enable) {
+		omap_wdt_start(&wdev->wdog);
+		set_bit(WDOG_HW_RUNNING, &wdev->wdog.status);
+	} else {
 		omap_wdt_disable(wdev);
+	}
 
 	ret = watchdog_register_device(&wdev->wdog);
 	if (ret) {