Patch "watchdog: bd9576: Drop "always-running" property" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    watchdog: bd9576: Drop "always-running" property

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     watchdog-bd9576-drop-always-running-property.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b84b435fde75ac6d70e010a37915d837a66eccfc
Author: Matti Vaittinen <mazziesaccount@xxxxxxxxx>
Date:   Mon Apr 8 13:02:31 2024 +0300

    watchdog: bd9576: Drop "always-running" property
    
    [ Upstream commit e3b3afd34d84efcbe4543deb966b1990f43584b8 ]
    
    The always-running (from linux,wdt-gpio.yaml) is abused by the BD9576
    watchdog driver. It's defined meaning is "the watchdog is always running
    and can not be stopped". The BD9576 watchdog driver has implemented it
    as "start watchdog when loading the module and prevent it from being
    stopped".
    
    Furthermore, the implementation does not set the WDOG_HW_RUNNING when
    enabling the watchdog due to the "always-running" at module loading.
    This will end up resulting a watchdog timeout if the device is not
    opened.
    
    The culprit was pointed out by Guenter, discussion can be found from
    https://lore.kernel.org/lkml/4fa3a64b-60fb-4e5e-8785-0f14da37eea2@xxxxxxxxxxxx/
    
    Drop the invalid "always-running" handling.
    
    Signed-off-by: Matti Vaittinen <mazziesaccount@xxxxxxxxx>
    Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
    Fixes: b237bcac557a ("wdt: Support wdt on ROHM BD9576MUF and BD9573MUF")
    Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/ZhPAt76yaJMersXf@fedora
    Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
    Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/watchdog/bd9576_wdt.c b/drivers/watchdog/bd9576_wdt.c
index 4a20e07fbb699..f00ea1b4e40b6 100644
--- a/drivers/watchdog/bd9576_wdt.c
+++ b/drivers/watchdog/bd9576_wdt.c
@@ -29,7 +29,6 @@ struct bd9576_wdt_priv {
 	struct gpio_desc	*gpiod_en;
 	struct device		*dev;
 	struct regmap		*regmap;
-	bool			always_running;
 	struct watchdog_device	wdd;
 };
 
@@ -62,10 +61,7 @@ static int bd9576_wdt_stop(struct watchdog_device *wdd)
 {
 	struct bd9576_wdt_priv *priv = watchdog_get_drvdata(wdd);
 
-	if (!priv->always_running)
-		bd9576_wdt_disable(priv);
-	else
-		set_bit(WDOG_HW_RUNNING, &wdd->status);
+	bd9576_wdt_disable(priv);
 
 	return 0;
 }
@@ -264,9 +260,6 @@ static int bd9576_wdt_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	priv->always_running = device_property_read_bool(dev->parent,
-							 "always-running");
-
 	watchdog_set_drvdata(&priv->wdd, priv);
 
 	priv->wdd.info			= &bd957x_wdt_ident;
@@ -281,9 +274,6 @@ static int bd9576_wdt_probe(struct platform_device *pdev)
 
 	watchdog_stop_on_reboot(&priv->wdd);
 
-	if (priv->always_running)
-		bd9576_wdt_start(&priv->wdd);
-
 	return devm_watchdog_register_device(dev, &priv->wdd);
 }
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux