[PATCH v6 09/17] rtc: rzn1: Use pm_runtime_put_sync()

From: Prabhakar

Date: Fri Aug 21 2026 - 17:12:16 EST


From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>

pm_runtime_put() may trigger the idle check after pm_runtime_disable()
is run as part of devm_pm_runtime_enable()'s cleanup action, leaving
runtime PM active.

Use pm_runtime_put_sync() to ensure the idle check runs synchronously.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
Reviewed-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Tested-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
---
v5->v6:
- Added Reviewed-by and Tested-by tags from Wolfram

v4->v5:
- Updated commit message
- Moved the patch prior to the patch that replaces the .remove() callback
with devm_add_action_or_reset()

v3->v4:
- New patch
---
drivers/rtc/rtc-rzn1.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-rzn1.c b/drivers/rtc/rtc-rzn1.c
index 12c52003a7dc..84ec8dc397e5 100644
--- a/drivers/rtc/rtc-rzn1.c
+++ b/drivers/rtc/rtc-rzn1.c
@@ -493,7 +493,7 @@ static int rzn1_rtc_probe(struct platform_device *pdev)
return 0;

dis_runtime_pm:
- pm_runtime_put(&pdev->dev);
+ pm_runtime_put_sync(&pdev->dev);

return ret;
}
@@ -505,7 +505,7 @@ static void rzn1_rtc_remove(struct platform_device *pdev)
/* Disable all interrupts */
writel(0, rtc->base + RZN1_RTC_CTL1);

- pm_runtime_put(&pdev->dev);
+ pm_runtime_put_sync(&pdev->dev);
}

static const struct of_device_id rzn1_rtc_of_match[] = {
--
2.43.0