]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
watchdog: rzn1: remove now obsolete interrupt support
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 7 May 2026 10:24:08 +0000 (12:24 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Sun, 10 May 2026 15:31:34 +0000 (08:31 -0700)
Previously, it was overlooked that the watchdog could reset the system
directly. So, a workaround using the interrupt which called
emergency_restart() was implemented. We now configure the controller
when booting properly to allow watchdog resets directly. Thus, remove
the interrupt workaround.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/r/20260507102410.43384-4-wsa+renesas@sang-engineering.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/watchdog/rzn1_wdt.c

index 48d5afef62a51abd137ac8027e4dd335b353dc11..4fdc5363ba98fb7288cdc85da9c42a5223d4589e 100644 (file)
@@ -79,14 +79,6 @@ static int rzn1_wdt_start(struct watchdog_device *w)
        return 0;
 }
 
-static irqreturn_t rzn1_wdt_irq(int irq, void *_wdt)
-{
-       pr_crit("RZN1 Watchdog. Initiating system reboot\n");
-       emergency_restart();
-
-       return IRQ_HANDLED;
-}
-
 static struct watchdog_info rzn1_wdt_info = {
        .identity = "RZ/N1 Watchdog",
        .options = WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
@@ -101,12 +93,10 @@ static const struct watchdog_ops rzn1_wdt_ops = {
 static int rzn1_wdt_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       struct device_node *np = dev->of_node;
        struct rzn1_watchdog *wdt;
        unsigned long clk_rate;
        struct clk *clk;
        int ret;
-       int irq;
 
        wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
        if (!wdt)
@@ -116,15 +106,6 @@ static int rzn1_wdt_probe(struct platform_device *pdev)
        if (IS_ERR(wdt->base))
                return PTR_ERR(wdt->base);
 
-       irq = platform_get_irq(pdev, 0);
-       if (irq < 0)
-               return irq;
-
-       ret = devm_request_irq(dev, irq, rzn1_wdt_irq, 0,
-                              np->name, wdt);
-       if (ret)
-               return dev_err_probe(dev, ret, "failed to request irq %d\n", irq);
-
        clk = devm_clk_get_enabled(dev, NULL);
        if (IS_ERR(clk))
                return dev_err_probe(dev, PTR_ERR(clk), "failed to get the clock\n");