| From 9dacf964213ef04ee2497e639efe60b76c27f119 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 20 Jan 2020 10:17:29 +0100 |
| Subject: watchdog: da9062: do not ping the hw during stop() |
| |
| From: Marco Felsch <m.felsch@pengutronix.de> |
| |
| [ Upstream commit e9a0e65eda3f78d0b04ec6136c591c000cbc3b76 ] |
| |
| The da9062 hw has a minimum ping cool down phase of at least 200ms. The |
| driver takes that into account by setting the min_hw_heartbeat_ms to |
| 300ms and the core guarantees that the hw limit is observed for the |
| ping() calls. But the core can't guarantee the required minimum ping |
| cool down phase if a stop() command is send immediately after the ping() |
| command. So it is not allowed to ping the watchdog within the stop() |
| command as the driver does. Remove the ping can be done without doubts |
| because the watchdog gets disabled anyway and a (re)start resets the |
| watchdog counter too. |
| |
| Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> |
| Reviewed-by: Guenter Roeck <linux@roeck-us.net> |
| Link: https://lore.kernel.org/r/20200120091729.16256-1-m.felsch@pengutronix.de |
| [groeck: Updated description] |
| Signed-off-by: Guenter Roeck <linux@roeck-us.net> |
| Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/watchdog/da9062_wdt.c | 7 ------- |
| 1 file changed, 7 deletions(-) |
| |
| diff --git a/drivers/watchdog/da9062_wdt.c b/drivers/watchdog/da9062_wdt.c |
| index e149e66a6ea9f..e92f38fcb7a4a 100644 |
| --- a/drivers/watchdog/da9062_wdt.c |
| +++ b/drivers/watchdog/da9062_wdt.c |
| @@ -94,13 +94,6 @@ static int da9062_wdt_stop(struct watchdog_device *wdd) |
| struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); |
| int ret; |
| |
| - ret = da9062_reset_watchdog_timer(wdt); |
| - if (ret) { |
| - dev_err(wdt->hw->dev, "Failed to ping the watchdog (err = %d)\n", |
| - ret); |
| - return ret; |
| - } |
| - |
| ret = regmap_update_bits(wdt->hw->regmap, |
| DA9062AA_CONTROL_D, |
| DA9062AA_TWDSCALE_MASK, |
| -- |
| 2.20.1 |
| |