Skip to content

Commit 60f0108

Browse files
MrVanalexandrebelloni
authored andcommitted
rtc: bbnsm: add remove hook
Without remove hook to clear wake irq, there will be kernel dump when doing module test. "bbnsm_rtc 44440000.bbnsm:rtc: wake irq already initialized" Add remove hook to clear wake irq and set wakeup to false. Fixes: eb7b858 ("rtc: bbnsm: Add the bbnsm rtc support") Signed-off-by: Peng Fan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexandre Belloni <[email protected]>
1 parent 5a36826 commit 60f0108

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

drivers/rtc/rtc-nxp-bbnsm.c

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,28 @@ static int bbnsm_rtc_probe(struct platform_device *pdev)
197197
if (ret) {
198198
dev_err(&pdev->dev, "failed to request irq %d: %d\n",
199199
bbnsm->irq, ret);
200-
return ret;
200+
goto err;
201201
}
202202

203203
bbnsm->rtc->ops = &bbnsm_rtc_ops;
204204
bbnsm->rtc->range_max = U32_MAX;
205205

206-
return devm_rtc_register_device(bbnsm->rtc);
206+
ret = devm_rtc_register_device(bbnsm->rtc);
207+
if (ret)
208+
goto err;
209+
210+
return 0;
211+
212+
err:
213+
dev_pm_clear_wake_irq(&pdev->dev);
214+
device_init_wakeup(&pdev->dev, false);
215+
return ret;
216+
}
217+
218+
static void bbnsm_rtc_remove(struct platform_device *pdev)
219+
{
220+
dev_pm_clear_wake_irq(&pdev->dev);
221+
device_init_wakeup(&pdev->dev, false);
207222
}
208223

209224
static const struct of_device_id bbnsm_dt_ids[] = {
@@ -218,6 +233,7 @@ static struct platform_driver bbnsm_rtc_driver = {
218233
.of_match_table = bbnsm_dt_ids,
219234
},
220235
.probe = bbnsm_rtc_probe,
236+
.remove = bbnsm_rtc_remove,
221237
};
222238
module_platform_driver(bbnsm_rtc_driver);
223239

0 commit comments

Comments
 (0)