diff mbox

[v2] watchdog: sunxi: fix activation of system reset

Message ID 55B32BCE.5050506@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Francesco Lavra July 25, 2015, 6:25 a.m. UTC
Commit f2147de33470 ("watchdog: sunxi: support parameterized compatible
strings") introduced a regression in sunxi_wdt_start(), by which
the system reset function of the watchdog is not enabled upon
starting the watchdog. As a result, the system is not reset when the
watchdog expires. Fix it. 

Signed-off-by: Francesco Lavra <francescolavra.fl@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Fixes: f2147de33470 ("watchdog: sunxi: support parameterized compatible strings")
Cc: stable@vger.kernel.org
---
Changes in v2:
  - Added Reviewed-by, Fixes, and Cc tags
  - Fixed commit message
---
 drivers/watchdog/sunxi_wdt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Maxime Ripard July 26, 2015, 7:32 p.m. UTC | #1
On Sat, Jul 25, 2015 at 08:25:18AM +0200, Francesco Lavra wrote:
> Commit f2147de33470 ("watchdog: sunxi: support parameterized compatible
> strings") introduced a regression in sunxi_wdt_start(), by which
> the system reset function of the watchdog is not enabled upon
> starting the watchdog. As a result, the system is not reset when the
> watchdog expires. Fix it. 
> 
> Signed-off-by: Francesco Lavra <francescolavra.fl@gmail.com>
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> Fixes: f2147de33470 ("watchdog: sunxi: support parameterized compatible strings")
> Cc: stable@vger.kernel.org

Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>

Thanks!
Maxime
Chen-Yu Tsai Aug. 24, 2015, 9:25 a.m. UTC | #2
Hi,

On Mon, Jul 27, 2015 at 3:32 AM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Sat, Jul 25, 2015 at 08:25:18AM +0200, Francesco Lavra wrote:
>> Commit f2147de33470 ("watchdog: sunxi: support parameterized compatible
>> strings") introduced a regression in sunxi_wdt_start(), by which
>> the system reset function of the watchdog is not enabled upon
>> starting the watchdog. As a result, the system is not reset when the
>> watchdog expires. Fix it.
>>
>> Signed-off-by: Francesco Lavra <francescolavra.fl@gmail.com>
>> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
>> Fixes: f2147de33470 ("watchdog: sunxi: support parameterized compatible strings")
>> Cc: stable@vger.kernel.org
>
> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>

What tree should this go in through?
Guenter, are you still taking watchdog patches?


Thanks
ChenYu
Guenter Roeck Aug. 24, 2015, 12:49 p.m. UTC | #3
On 08/24/2015 02:25 AM, Chen-Yu Tsai wrote:
> Hi,
>
> On Mon, Jul 27, 2015 at 3:32 AM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
>> On Sat, Jul 25, 2015 at 08:25:18AM +0200, Francesco Lavra wrote:
>>> Commit f2147de33470 ("watchdog: sunxi: support parameterized compatible
>>> strings") introduced a regression in sunxi_wdt_start(), by which
>>> the system reset function of the watchdog is not enabled upon
>>> starting the watchdog. As a result, the system is not reset when the
>>> watchdog expires. Fix it.
>>>
>>> Signed-off-by: Francesco Lavra <francescolavra.fl@gmail.com>
>>> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
>>> Fixes: f2147de33470 ("watchdog: sunxi: support parameterized compatible strings")
>>> Cc: stable@vger.kernel.org
>>
>> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
>
> What tree should this go in through?
> Guenter, are you still taking watchdog patches?
>

The patch is included in the pull request I sent to Wim last week [1].

Guenter

---
[1] http://www.spinics.net/lists/linux-watchdog/msg07219.html
diff mbox

Patch

diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c
index a29afb3..47bd8a1 100644
--- a/drivers/watchdog/sunxi_wdt.c
+++ b/drivers/watchdog/sunxi_wdt.c
@@ -184,7 +184,7 @@  static int sunxi_wdt_start(struct watchdog_device *wdt_dev)
 	/* Set system reset function */
 	reg = readl(wdt_base + regs->wdt_cfg);
 	reg &= ~(regs->wdt_reset_mask);
-	reg |= ~(regs->wdt_reset_val);
+	reg |= regs->wdt_reset_val;
 	writel(reg, wdt_base + regs->wdt_cfg);
 
 	/* Enable watchdog */