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>
---
v2 -> v3:
  Use new enum wdog_hw_running
v1 -> v2:
  Use new WDOG_HW_RUNNING_SUPPORTED
---
 drivers/watchdog/f71808e_wdt.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/watchdog/f71808e_wdt.c b/drivers/watchdog/f71808e_wdt.c
index 4f881a1d02bc..5307ab0b3ead 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,11 @@ static int f71808e_wdt_init(struct f71808e_wdt *wd, struct 
device_d *dev)
 
        dev_info(dev, "reset reason: %s\n", reset_source_name());
 
+       if (test_bit(F71808FG_FLAG_WD_EN, &wdt_conf))
+               wdd->running = WDOG_HW_RUNNING;
+       else
+               wdd->running = WDOG_HW_NOT_RUNNING;
+
        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