From 41b9cf3cd8d0c61666ad8e8748049ca1fdbfaf49 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Sat, 15 Jan 2022 14:29:47 +0800 Subject: [PATCH] rtc/rpmsg: Add sync parameter to control whether call clock_synchronize Signed-off-by: Xiang Xiao --- arch/sim/src/sim/up_rtc.c | 2 +- boards/sim/sim/sim/src/sim_bringup.c | 2 +- drivers/timers/arch_rtc.c | 7 +++++-- include/nuttx/timers/arch_rtc.h | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/arch/sim/src/sim/up_rtc.c b/arch/sim/src/sim/up_rtc.c index b020bb7266..36c57742f9 100644 --- a/arch/sim/src/sim/up_rtc.c +++ b/arch/sim/src/sim/up_rtc.c @@ -128,6 +128,6 @@ int up_rtc_initialize(void) #ifdef CONFIG_RTC_RPMSG_SERVER rtc = rpmsg_rtc_server_initialize(rtc); #endif - up_rtc_set_lowerhalf(rtc); + up_rtc_set_lowerhalf(rtc, true); return rtc_initialize(0, rtc); } diff --git a/boards/sim/sim/sim/src/sim_bringup.c b/boards/sim/sim/sim/src/sim_bringup.c index d040673729..b497051b3b 100644 --- a/boards/sim/sim/sim/src/sim_bringup.c +++ b/boards/sim/sim/sim/src/sim_bringup.c @@ -450,7 +450,7 @@ int sim_bringup(void) #if defined(CONFIG_RTC_RPMSG) && !defined(CONFIG_RTC_RPMSG_SERVER) rtc = rpmsg_rtc_initialize(); - up_rtc_set_lowerhalf(rtc); + up_rtc_set_lowerhalf(rtc, true); rtc_initialize(0, rtc); #endif diff --git a/drivers/timers/arch_rtc.c b/drivers/timers/arch_rtc.c index 6e1b90f3a1..c6c3cc10ed 100644 --- a/drivers/timers/arch_rtc.c +++ b/drivers/timers/arch_rtc.c @@ -50,13 +50,16 @@ volatile bool g_rtc_enabled = false; * Public Functions ****************************************************************************/ -void up_rtc_set_lowerhalf(FAR struct rtc_lowerhalf_s *lower) +void up_rtc_set_lowerhalf(FAR struct rtc_lowerhalf_s *lower, bool sync) { g_rtc_lower = lower; g_rtc_enabled = true; #ifdef CONFIG_RTC_EXTERNAL - clock_synchronize(); + if (sync) + { + clock_synchronize(); + } #endif } diff --git a/include/nuttx/timers/arch_rtc.h b/include/nuttx/timers/arch_rtc.h index 2a2a803480..e4092bda75 100644 --- a/include/nuttx/timers/arch_rtc.h +++ b/include/nuttx/timers/arch_rtc.h @@ -42,11 +42,11 @@ extern "C" #ifdef CONFIG_RTC_ARCH -void up_rtc_set_lowerhalf(FAR struct rtc_lowerhalf_s *lower); +void up_rtc_set_lowerhalf(FAR struct rtc_lowerhalf_s *lower, bool sync); #else -# define up_rtc_set_lowerhalf(lower) +# define up_rtc_set_lowerhalf(lower, sync) #endif /* CONFIG_RTC_ARCH */