* [PATCH] rtc: efi: Defer driver initialization to prioritize more capable RTCs
@ 2025-06-11 6:20 Ming Wang
2025-06-12 22:33 ` kernel test robot
0 siblings, 1 reply; 2+ messages in thread
From: Ming Wang @ 2025-06-11 6:20 UTC (permalink / raw)
To: Alexandre Belloni, linux-rtc, linux-kernel
Cc: Huacai Chen, lixuefeng, chenhuacai, gaojuxin
The EFI GetWakeupTime call, used by efi_read_alarm() to fetch RTC
wakeup alarm information, is specified to return EFI_UNSUPPORTED on
EFI firmware v1.10 and later. This effectively means that on most
modern systems, the efi-rtc driver cannot provide working RTC alarm
functionality.
If efi-rtc registers early during boot, it might become the primary
RTC device (e.g., /dev/rtc0). This can lead to a situation where the
system appears to have an RTC, but userspace utilities cannot set or
get RTC alarms, even if other RTC hardware (like rtc-cmos, which
typically supports alarms) is present but registers later.
To address this, change the efi-rtc driver initialization from
module_init() to late_initcall(). By deferring its initialization,
we give other, potentially more capable RTC drivers (such as rtc-cmos)
a better chance to register first and become the primary RTC.
This change increases the likelihood that systems with multiple RTC
sources will use the one with the most complete feature set (including
alarms) as the primary RTC. The efi-rtc driver can still serve as a
time source or a fallback RTC if no other RTC is available or preferred.
Signed-off-by: Ming Wang <wangming01@loongson.cn>
---
drivers/rtc/rtc-efi.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/rtc/rtc-efi.c b/drivers/rtc/rtc-efi.c
index fa8bf82df948..f97a228510f4 100644
--- a/drivers/rtc/rtc-efi.c
+++ b/drivers/rtc/rtc-efi.c
@@ -286,9 +286,20 @@ static struct platform_driver efi_rtc_driver = {
.driver = {
.name = "rtc-efi",
},
+ .probe = efi_rtc_probe,
};
-module_platform_driver_probe(efi_rtc_driver, efi_rtc_probe);
+static int __init efi_rtc_driver_init(void)
+{
+ return platform_driver_register(&efi_rtc_driver);
+}
+late_initcall(efi_rtc_driver_init);
+
+static void __exit efi_rtc_driver_exit(void)
+{
+ platform_driver_unregister(&efi_rtc_driver);
+}
+module_exit(efi_rtc_driver_exit);
MODULE_AUTHOR("dann frazier <dannf@dannf.org>");
MODULE_LICENSE("GPL");
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] rtc: efi: Defer driver initialization to prioritize more capable RTCs
2025-06-11 6:20 [PATCH] rtc: efi: Defer driver initialization to prioritize more capable RTCs Ming Wang
@ 2025-06-12 22:33 ` kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-06-12 22:33 UTC (permalink / raw)
To: Ming Wang, Alexandre Belloni, linux-rtc, linux-kernel
Cc: oe-kbuild-all, Huacai Chen, lixuefeng, chenhuacai, gaojuxin
Hi Ming,
kernel test robot noticed the following build warnings:
[auto build test WARNING on abelloni/rtc-next]
[also build test WARNING on linus/master v6.16-rc1 next-20250612]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Ming-Wang/rtc-efi-Defer-driver-initialization-to-prioritize-more-capable-RTCs/20250611-142308
base: https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next
patch link: https://lore.kernel.org/r/20250611062025.3243732-1-wangming01%40loongson.cn
patch subject: [PATCH] rtc: efi: Defer driver initialization to prioritize more capable RTCs
config: arm-multi_v7_defconfig (https://download.01.org/0day-ci/archive/20250613/202506130610.5rhXSP5U-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250613/202506130610.5rhXSP5U-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506130610.5rhXSP5U-lkp@intel.com/
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> WARNING: modpost: drivers/rtc/rtc-efi: section mismatch in reference: efi_rtc_driver+0x0 (section: .data) -> efi_rtc_probe (section: .init.text)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-06-12 22:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-11 6:20 [PATCH] rtc: efi: Defer driver initialization to prioritize more capable RTCs Ming Wang
2025-06-12 22:33 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox