[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230615092753.323844-6-valentin.caron@foss.st.com>
Date: Thu, 15 Jun 2023 11:27:51 +0200
From: Valentin Caron <valentin.caron@...s.st.com>
To: Alessandro Zummo <a.zummo@...ertech.it>,
Alexandre Belloni <alexandre.belloni@...tlin.com>
CC: Alexandre Torgue <alexandre.torgue@...s.st.com>,
Antonio Borneo <antonio.borneo@...s.st.com>,
Christophe Guibout <christophe.guibout@...s.st.com>,
Gabriel Fernandez <gabriel.fernandez@...s.st.com>,
<linux-rtc@...r.kernel.org>,
<linux-stm32@...md-mailman.stormreply.com>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-kernel@...r.kernel.org>,
Valentin Caron <valentin.caron@...s.st.com>
Subject: [PATCH 5/7] rtc: stm32: change PM callbacks to "_noirq()"
From: Gabriel Fernandez <gabriel.fernandez@...s.st.com>
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: Gabriel Fernandez <gabriel.fernandez@...s.st.com>
Signed-off-by: Valentin Caron <valentin.caron@...s.st.com>
---
drivers/rtc/rtc-stm32.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/rtc/rtc-stm32.c b/drivers/rtc/rtc-stm32.c
index 5ebf0b8e75f9..17e549806784 100644
--- a/drivers/rtc/rtc-stm32.c
+++ b/drivers/rtc/rtc-stm32.c
@@ -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,
--
2.25.1
Powered by blists - more mailing lists