--- /dev/null
+From 4eda19cc8a29cde3580ed73bf11dc73b4e757697 Mon Sep 17 00:00:00 2001
+From: Gregory Oakes <gregory.oakes@amd.com>
+Date: Thu, 16 Mar 2023 15:13:12 -0500
+Subject: watchdog: sp5100_tco: Immediately trigger upon starting.
+
+From: Gregory Oakes <gregory.oakes@amd.com>
+
+commit 4eda19cc8a29cde3580ed73bf11dc73b4e757697 upstream.
+
+The watchdog countdown is supposed to begin when the device file is
+opened. Instead, it would begin countdown upon the first write to or
+close of the device file. Now, the ping operation is called within the
+start operation which ensures the countdown begins. From experimenation,
+it does not appear possible to do this with a single write including
+both the start bit and the trigger bit. So, it is done as two distinct
+writes.
+
+Signed-off-by: Gregory Oakes <gregory.oakes@amd.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/20230316201312.17538-1-gregory.oakes@amd.com
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
+Cc: Mario Limonciello <mario.limonciello@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/watchdog/sp5100_tco.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/watchdog/sp5100_tco.c
++++ b/drivers/watchdog/sp5100_tco.c
+@@ -98,6 +98,10 @@ static int tco_timer_start(struct watchd
+ val |= SP5100_WDT_START_STOP_BIT;
+ writel(val, SP5100_WDT_CONTROL(tco->tcobase));
+
++ /* This must be a distinct write. */
++ val |= SP5100_WDT_TRIGGER_BIT;
++ writel(val, SP5100_WDT_CONTROL(tco->tcobase));
++
+ return 0;
+ }
+