Commit 60f0108b authored by Peng Fan's avatar Peng Fan Committed by Alexandre Belloni
Browse files

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: eb7b8585 ("rtc: bbnsm: Add the bbnsm rtc support")
Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
Link: https://lore.kernel.org/r/20241111071130.1099978-1-peng.fan@oss.nxp.com


Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 5a36826a
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -197,13 +197,28 @@ static int bbnsm_rtc_probe(struct platform_device *pdev)
	if (ret) {
		dev_err(&pdev->dev, "failed to request irq %d: %d\n",
			bbnsm->irq, ret);
		return ret;
		goto err;
	}

	bbnsm->rtc->ops = &bbnsm_rtc_ops;
	bbnsm->rtc->range_max = U32_MAX;

	return devm_rtc_register_device(bbnsm->rtc);
	ret = devm_rtc_register_device(bbnsm->rtc);
	if (ret)
		goto err;

	return 0;

err:
	dev_pm_clear_wake_irq(&pdev->dev);
	device_init_wakeup(&pdev->dev, false);
	return ret;
}

static void bbnsm_rtc_remove(struct platform_device *pdev)
{
	dev_pm_clear_wake_irq(&pdev->dev);
	device_init_wakeup(&pdev->dev, false);
}

static const struct of_device_id bbnsm_dt_ids[] = {
@@ -218,6 +233,7 @@ static struct platform_driver bbnsm_rtc_driver = {
		.of_match_table = bbnsm_dt_ids,
	},
	.probe = bbnsm_rtc_probe,
	.remove = bbnsm_rtc_remove,
};
module_platform_driver(bbnsm_rtc_driver);