linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] macintosh: fix via-pmu and via-cuda build without RTC_CLASS
@ 2022-04-09  2:08 Randy Dunlap
  2022-04-10  7:03 ` Christophe Leroy
  0 siblings, 1 reply; 3+ messages in thread
From: Randy Dunlap @ 2022-04-09  2:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Randy Dunlap, kernel test robot, Benjamin Herrenschmidt,
	Michael Ellerman, Christophe Leroy, Kees Cook, Arnd Bergmann,
	Finn Thain, Geert Uytterhoeven, Nathan Chancellor,
	Nick Desaulniers, linuxppc-dev

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@infradead.org>
Reported-by: kernel test robot <lkp@intel.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Kees Cook <keescook@chromium.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Finn Thain <fthain@linux-m68k.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: linuxppc-dev@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;

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] macintosh: fix via-pmu and via-cuda build without RTC_CLASS
  2022-04-09  2:08 [PATCH] macintosh: fix via-pmu and via-cuda build without RTC_CLASS Randy Dunlap
@ 2022-04-10  7:03 ` Christophe Leroy
  2022-04-10 16:05   ` Randy Dunlap
  0 siblings, 1 reply; 3+ messages in thread
From: Christophe Leroy @ 2022-04-10  7:03 UTC (permalink / raw)
  To: Randy Dunlap, linux-kernel
  Cc: kernel test robot, Benjamin Herrenschmidt, Michael Ellerman,
	Kees Cook, Arnd Bergmann, Finn Thain, Geert Uytterhoeven,
	Nathan Chancellor, Nick Desaulniers, linuxppc-dev



Le 09/04/2022 à 04:08, Randy Dunlap a écrit :
> 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'

You don't need RTC_CLASS for that. All you need is RTC_LIB I think.

What about selecting RTC_LIB from m68k Kconfig just like powerpc and a 
few architectures do ?

See 
https://elixir.bootlin.com/linux/v5.18-rc1/source/arch/powerpc/Kconfig#L269

Otherwise, I think it would be better to move (and rename) 
rtc_tm_to_time64() into kernel/time/time.c instead of opencoding it twice.

Christophe


> 
> Fixes: 0792a2c8e0bb ("macintosh: Use common code to access RTC")
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
> Cc: Kees Cook <keescook@chromium.org>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Finn Thain <fthain@linux-m68k.org>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Nathan Chancellor <nathan@kernel.org>
> Cc: Nick Desaulniers <ndesaulniers@google.com>
> Cc: linuxppc-dev@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;

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] macintosh: fix via-pmu and via-cuda build without RTC_CLASS
  2022-04-10  7:03 ` Christophe Leroy
@ 2022-04-10 16:05   ` Randy Dunlap
  0 siblings, 0 replies; 3+ messages in thread
From: Randy Dunlap @ 2022-04-10 16:05 UTC (permalink / raw)
  To: Christophe Leroy, linux-kernel
  Cc: kernel test robot, Benjamin Herrenschmidt, Michael Ellerman,
	Kees Cook, Arnd Bergmann, Finn Thain, Geert Uytterhoeven,
	Nathan Chancellor, Nick Desaulniers, linuxppc-dev

Hi--

On 4/10/22 00:03, Christophe Leroy wrote:
> 
> 
> Le 09/04/2022 à 04:08, Randy Dunlap a écrit :
>> 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'
> 
> You don't need RTC_CLASS for that. All you need is RTC_LIB I think.

Oh good.

> What about selecting RTC_LIB from m68k Kconfig just like powerpc and a 
> few architectures do ?

Sounds good. I'll test that now.

> See 
> https://elixir.bootlin.com/linux/v5.18-rc1/source/arch/powerpc/Kconfig#L269
> 
> Otherwise, I think it would be better to move (and rename) 
> rtc_tm_to_time64() into kernel/time/time.c instead of opencoding it twice.
> 

Yeah, I didn't like that either.

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

thanks.
-- 
~Randy

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-04-10 16:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-09  2:08 [PATCH] macintosh: fix via-pmu and via-cuda build without RTC_CLASS Randy Dunlap
2022-04-10  7:03 ` Christophe Leroy
2022-04-10 16:05   ` Randy Dunlap

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).