diff mbox series

watchdog: sp5100_tco: Add support for get_timeleft

Message ID 20210928065735.548966-1-linux@weissschuh.net (mailing list archive)
State Accepted
Headers show
Series watchdog: sp5100_tco: Add support for get_timeleft | expand

Commit Message

Thomas Weißschuh Sept. 28, 2021, 6:57 a.m. UTC
Tested on a Gigabyte X570 I AORUS PRO WIFI.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 drivers/watchdog/sp5100_tco.c | 9 +++++++++
 1 file changed, 9 insertions(+)


base-commit: 41e73feb1024929e75eaf2f7cd93f35a3feb331b

Comments

Guenter Roeck Oct. 2, 2021, 1:20 p.m. UTC | #1
On Tue, Sep 28, 2021 at 08:57:35AM +0200, Thomas Weißschuh wrote:
> Tested on a Gigabyte X570 I AORUS PRO WIFI.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

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

> ---
>  drivers/watchdog/sp5100_tco.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/watchdog/sp5100_tco.c b/drivers/watchdog/sp5100_tco.c
> index a730ecbf78cd..dd9a744f82f8 100644
> --- a/drivers/watchdog/sp5100_tco.c
> +++ b/drivers/watchdog/sp5100_tco.c
> @@ -10,6 +10,7 @@
>   *				https://www.kernelconcepts.de
>   *
>   *	See AMD Publication 43009 "AMD SB700/710/750 Register Reference Guide",
> + *	    AMD Publication 44413 "AMD SP5100 Register Reference Guide"
>   *	    AMD Publication 45482 "AMD SB800-Series Southbridges Register
>   *	                                                      Reference Guide"
>   *	    AMD Publication 48751 "BIOS and Kernel Developer’s Guide (BKDG)
> @@ -144,6 +145,13 @@ static int tco_timer_set_timeout(struct watchdog_device *wdd,
>  	return 0;
>  }
>  
> +static unsigned int tco_timer_get_timeleft(struct watchdog_device *wdd)
> +{
> +	struct sp5100_tco *tco = watchdog_get_drvdata(wdd);
> +
> +	return readl(SP5100_WDT_COUNT(tco->tcobase));
> +}
> +
>  static u8 sp5100_tco_read_pm_reg8(u8 index)
>  {
>  	outb(index, SP5100_IO_PM_INDEX_REG);
> @@ -386,6 +394,7 @@ static const struct watchdog_ops sp5100_tco_wdt_ops = {
>  	.stop = tco_timer_stop,
>  	.ping = tco_timer_ping,
>  	.set_timeout = tco_timer_set_timeout,
> +	.get_timeleft = tco_timer_get_timeleft,
>  };
>  
>  static int sp5100_tco_probe(struct platform_device *pdev)
> 
> base-commit: 41e73feb1024929e75eaf2f7cd93f35a3feb331b
> -- 
> 2.33.0
>
diff mbox series

Patch

diff --git a/drivers/watchdog/sp5100_tco.c b/drivers/watchdog/sp5100_tco.c
index a730ecbf78cd..dd9a744f82f8 100644
--- a/drivers/watchdog/sp5100_tco.c
+++ b/drivers/watchdog/sp5100_tco.c
@@ -10,6 +10,7 @@ 
  *				https://www.kernelconcepts.de
  *
  *	See AMD Publication 43009 "AMD SB700/710/750 Register Reference Guide",
+ *	    AMD Publication 44413 "AMD SP5100 Register Reference Guide"
  *	    AMD Publication 45482 "AMD SB800-Series Southbridges Register
  *	                                                      Reference Guide"
  *	    AMD Publication 48751 "BIOS and Kernel Developer’s Guide (BKDG)
@@ -144,6 +145,13 @@  static int tco_timer_set_timeout(struct watchdog_device *wdd,
 	return 0;
 }
 
+static unsigned int tco_timer_get_timeleft(struct watchdog_device *wdd)
+{
+	struct sp5100_tco *tco = watchdog_get_drvdata(wdd);
+
+	return readl(SP5100_WDT_COUNT(tco->tcobase));
+}
+
 static u8 sp5100_tco_read_pm_reg8(u8 index)
 {
 	outb(index, SP5100_IO_PM_INDEX_REG);
@@ -386,6 +394,7 @@  static const struct watchdog_ops sp5100_tco_wdt_ops = {
 	.stop = tco_timer_stop,
 	.ping = tco_timer_ping,
 	.set_timeout = tco_timer_set_timeout,
+	.get_timeleft = tco_timer_get_timeleft,
 };
 
 static int sp5100_tco_probe(struct platform_device *pdev)