spi: sprd: adi: Add missing lock protection when rebooting
authorLingling Xu <ling_ling.xu@unisoc.com>
Mon, 28 Oct 2019 10:10:30 +0000 (18:10 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Dec 2019 15:44:25 +0000 (16:44 +0100)
[ Upstream commit 91ea1d70607e374b014b4b9bea771ce661f9f64b ]

When rebooting the system, we should lock the watchdog after
configuration to make sure the watchdog can reboot the system
successfully.

Signed-off-by: Lingling Xu <ling_ling.xu@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Link: https://lore.kernel.org/r/7b04711127434555e3a1a86bc6be99860cd86668.1572257085.git.baolin.wang@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-sprd-adi.c

index 9a05128..9613cfe 100644 (file)
@@ -393,6 +393,9 @@ static int sprd_adi_restart_handler(struct notifier_block *this,
        val |= BIT_WDG_RUN | BIT_WDG_RST;
        sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_CTRL, val);
 
+       /* Lock the watchdog */
+       sprd_adi_write(sadi, sadi->slave_pbase + REG_WDG_LOCK, ~WDG_UNLOCK_KEY);
+
        mdelay(1000);
 
        dev_emerg(sadi->dev, "Unable to restart system\n");