[PATCH] macintosh: fix via-pmu and via-cuda build without RTC_CLASS

Randy Dunlap rdunlap at infradead.org
Sat Apr 9 12:08:21 AEST 2022


Fix build when RTC_CLASS is not set/enabled.
Eliminates these build errors:

m68k-linux-ld: drivers/macintosh/via-pmu.o: in function `pmu_set_rtc_time':
drivers/macintosh/via-pmu.c:1769: undefined reference to `rtc_tm_to_time64'
m68k-linux-ld: drivers/macintosh/via-cuda.o: in function `cuda_set_rtc_time':
drivers/macintosh/via-cuda.c:797: undefined reference to `rtc_tm_to_time64'

Fixes: 0792a2c8e0bb ("macintosh: Use common code to access RTC")
Signed-off-by: Randy Dunlap <rdunlap at infradead.org>
Reported-by: kernel test robot <lkp at intel.com>
Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Cc: Michael Ellerman <mpe at ellerman.id.au>
Cc: Christophe Leroy <christophe.leroy at csgroup.eu>
Cc: Kees Cook <keescook at chromium.org>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: Finn Thain <fthain at linux-m68k.org>
Cc: Geert Uytterhoeven <geert at linux-m68k.org>
Cc: Nathan Chancellor <nathan at kernel.org>
Cc: Nick Desaulniers <ndesaulniers at google.com>
Cc: linuxppc-dev at lists.ozlabs.org
---
 drivers/macintosh/via-cuda.c |    5 ++++-
 drivers/macintosh/via-pmu.c  |    5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

--- a/drivers/macintosh/via-cuda.c
+++ b/drivers/macintosh/via-cuda.c
@@ -794,7 +794,10 @@ int cuda_set_rtc_time(struct rtc_time *t
 	u32 now;
 	struct adb_request req;
 
-	now = lower_32_bits(rtc_tm_to_time64(tm) + RTC_OFFSET);
+	now = lower_32_bits(mktime64(((unsigned int)tm->tm_year + 1900),
+			    tm->tm_mon + 1, tm->tm_mday, tm->tm_hour,
+			    tm->tm_min, tm->tm_sec)
+			    + RTC_OFFSET);
 	if (cuda_request(&req, NULL, 6, CUDA_PACKET, CUDA_SET_TIME,
 	                 now >> 24, now >> 16, now >> 8, now) < 0)
 		return -ENXIO;
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -1766,7 +1766,10 @@ int pmu_set_rtc_time(struct rtc_time *tm
 	u32 now;
 	struct adb_request req;
 
-	now = lower_32_bits(rtc_tm_to_time64(tm) + RTC_OFFSET);
+	now = lower_32_bits(mktime64(((unsigned int)tm->tm_year + 1900),
+			    tm->tm_mon + 1, tm->tm_mday, tm->tm_hour,
+			    tm->tm_min, tm->tm_sec)
+			    + RTC_OFFSET);
 	if (pmu_request(&req, NULL, 5, PMU_SET_RTC,
 	                now >> 24, now >> 16, now >> 8, now) < 0)
 		return -ENXIO;


More information about the Linuxppc-dev mailing list