The American Megatrends BIOS I am using can be configured to start the
Fintek watchdog prior to the UEFI payloads. To avoid BIOS updates that reset
this functionality going unnoticed, implement support for WDOG_HW_RUNNING.

Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de>
---
 drivers/watchdog/f71808e_wdt.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/watchdog/f71808e_wdt.c b/drivers/watchdog/f71808e_wdt.c
index 4f881a1d02bc..2b2f98a12cca 100644
--- a/drivers/watchdog/f71808e_wdt.c
+++ b/drivers/watchdog/f71808e_wdt.c
@@ -222,7 +222,7 @@ static int f71808e_wdt_init(struct f71808e_wdt *wd, struct 
device_d *dev)
 {
        struct watchdog *wdd = &wd->wdd;
        const char * const *names = pulse_width_names;
-       int wdt_conf;
+       unsigned long wdt_conf;
        int ret;
 
        superio_enter(wd->sioaddr);
@@ -262,6 +262,10 @@ static int f71808e_wdt_init(struct f71808e_wdt *wd, struct 
device_d *dev)
 
        dev_info(dev, "reset reason: %s\n", reset_source_name());
 
+       set_bit(WDOG_HW_RUNNING, &wdd->status_supported);
+       if (test_bit(F71808FG_FLAG_WD_EN, &wdt_conf))
+               set_bit(WDOG_HW_RUNNING, &wdd->status);
+
        ret = watchdog_register(wdd);
        if (ret)
                return ret;
-- 
2.24.0.rc1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to