lkml.org 
[lkml]   [2021]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.12 148/292] watchdog: imx_sc_wdt: fix pretimeout
    Date
    From: Stefan Eichenberger <eichest@gmail.com>

    [ Upstream commit 854478a381078ee86ae2a7908a934b1ded399130 ]

    If the WDIOF_PRETIMEOUT flag is not set when registering the device the
    driver will not show the sysfs entries or register the default governor.
    By moving the registering after the decision whether pretimeout is
    supported this gets fixed.

    Signed-off-by: Stefan Eichenberger <eichest@gmail.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
    Link: https://lore.kernel.org/r/20210519080311.142928-1-eichest@gmail.com
    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/imx_sc_wdt.c | 11 ++++-------
    1 file changed, 4 insertions(+), 7 deletions(-)

    diff --git a/drivers/watchdog/imx_sc_wdt.c b/drivers/watchdog/imx_sc_wdt.c
    index e9ee22a7cb45..8ac021748d16 100644
    --- a/drivers/watchdog/imx_sc_wdt.c
    +++ b/drivers/watchdog/imx_sc_wdt.c
    @@ -183,16 +183,12 @@ static int imx_sc_wdt_probe(struct platform_device *pdev)
    watchdog_stop_on_reboot(wdog);
    watchdog_stop_on_unregister(wdog);

    - ret = devm_watchdog_register_device(dev, wdog);
    - if (ret)
    - return ret;
    -
    ret = imx_scu_irq_group_enable(SC_IRQ_GROUP_WDOG,
    SC_IRQ_WDOG,
    true);
    if (ret) {
    dev_warn(dev, "Enable irq failed, pretimeout NOT supported\n");
    - return 0;
    + goto register_device;
    }

    imx_sc_wdd->wdt_notifier.notifier_call = imx_sc_wdt_notify;
    @@ -203,7 +199,7 @@ static int imx_sc_wdt_probe(struct platform_device *pdev)
    false);
    dev_warn(dev,
    "Register irq notifier failed, pretimeout NOT supported\n");
    - return 0;
    + goto register_device;
    }

    ret = devm_add_action_or_reset(dev, imx_sc_wdt_action,
    @@ -213,7 +209,8 @@ static int imx_sc_wdt_probe(struct platform_device *pdev)
    else
    dev_warn(dev, "Add action failed, pretimeout NOT supported\n");

    - return 0;
    +register_device:
    + return devm_watchdog_register_device(dev, wdog);
    }

    static int __maybe_unused imx_sc_wdt_suspend(struct device *dev)
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-19 20:09    [W:4.228 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site