Commit fb9a7e53 authored by Gabriel Fernandez's avatar Gabriel Fernandez Committed by Alexandre Belloni

rtc: stm32: change PM callbacks to "_noirq()"

The RTC driver stops the RTCAPB clock during suspend, but the
irq handler from RTC is called before starting clock. Then we are
blocked while accessing RTC registers.

We changes PM callbacks to '_no_irq()' to disable irq during
resume callback and so irq handler will be called after the enable
of RTCAPB clock.
Signed-off-by: default avatarGabriel Fernandez <gabriel.fernandez@foss.st.com>
Signed-off-by: default avatarValentin Caron <valentin.caron@foss.st.com>
Link: https://lore.kernel.org/r/20230705174357.353616-6-valentin.caron@foss.st.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 95f7679c
......@@ -919,8 +919,9 @@ static int stm32_rtc_resume(struct device *dev)
}
#endif
static SIMPLE_DEV_PM_OPS(stm32_rtc_pm_ops,
stm32_rtc_suspend, stm32_rtc_resume);
static const struct dev_pm_ops stm32_rtc_pm_ops = {
SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(stm32_rtc_suspend, stm32_rtc_resume)
};
static struct platform_driver stm32_rtc_driver = {
.probe = stm32_rtc_probe,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment