Message ID | fbb650650bbb33a8fa2fd028c23157bedeed50e1.1682491863.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] watchdog: dw_wdt: Fix the error handling path of dw_wdt_drv_probe() | expand |
Hi Christophe, On Wed, Apr 26, 2023 at 08:52:48AM +0200, Christophe JAILLET wrote: > The commit in Fixes has only updated the remove function and missed the > error handling path of the probe. > > Add the missing reset_control_assert() call. > > Fixes: 65a3b6935d92 ("watchdog: dw_wdt: get reset lines from dt") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> regards Philipp
On Wed, Apr 26, 2023 at 08:52:48AM +0200, Christophe JAILLET wrote: > The commit in Fixes has only updated the remove function and missed the > error handling path of the probe. > > Add the missing reset_control_assert() call. > > Fixes: 65a3b6935d92 ("watchdog: dw_wdt: get reset lines from dt") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > drivers/watchdog/dw_wdt.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c > index 6f88bd81f8a1..a1354a59eb37 100644 > --- a/drivers/watchdog/dw_wdt.c > +++ b/drivers/watchdog/dw_wdt.c > @@ -635,7 +635,7 @@ static int dw_wdt_drv_probe(struct platform_device *pdev) > > ret = dw_wdt_init_timeouts(dw_wdt, dev); > if (ret) > - goto out_disable_clk; > + goto out_assert_rst; > > wdd = &dw_wdt->wdd; > wdd->ops = &dw_wdt_ops; > @@ -667,12 +667,15 @@ static int dw_wdt_drv_probe(struct platform_device *pdev) > > ret = watchdog_register_device(wdd); > if (ret) > - goto out_disable_pclk; > + goto out_assert_rst; > > dw_wdt_dbgfs_init(dw_wdt); > > return 0; > > +out_assert_rst: > + reset_control_assert(dw_wdt->rst); > + > out_disable_pclk: > clk_disable_unprepare(dw_wdt->pclk); > > -- > 2.34.1 >
diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c index 6f88bd81f8a1..a1354a59eb37 100644 --- a/drivers/watchdog/dw_wdt.c +++ b/drivers/watchdog/dw_wdt.c @@ -635,7 +635,7 @@ static int dw_wdt_drv_probe(struct platform_device *pdev) ret = dw_wdt_init_timeouts(dw_wdt, dev); if (ret) - goto out_disable_clk; + goto out_assert_rst; wdd = &dw_wdt->wdd; wdd->ops = &dw_wdt_ops; @@ -667,12 +667,15 @@ static int dw_wdt_drv_probe(struct platform_device *pdev) ret = watchdog_register_device(wdd); if (ret) - goto out_disable_pclk; + goto out_assert_rst; dw_wdt_dbgfs_init(dw_wdt); return 0; +out_assert_rst: + reset_control_assert(dw_wdt->rst); + out_disable_pclk: clk_disable_unprepare(dw_wdt->pclk);
The commit in Fixes has only updated the remove function and missed the error handling path of the probe. Add the missing reset_control_assert() call. Fixes: 65a3b6935d92 ("watchdog: dw_wdt: get reset lines from dt") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- drivers/watchdog/dw_wdt.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)