Re: [PATCH 2/2] arm64: to allow EFI_RTC can be selected on ARM64

From: Arnd Bergmann
Date: Mon Sep 28 2015 - 04:43:17 EST


On Monday 28 September 2015 16:29:57 Leizhen wrote:
>
> On 2015/9/28 15:35, Arnd Bergmann wrote:
> > On Monday 28 September 2015 13:34:38 Zhen Lei wrote:
> >> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> >> index 07d1811..25cec57 100644
> >> --- a/arch/arm64/Kconfig
> >> +++ b/arch/arm64/Kconfig
> >> @@ -85,7 +85,7 @@ config ARM64
> >> select PERF_USE_VMALLOC
> >> select POWER_RESET
> >> select POWER_SUPPLY
> >> - select RTC_LIB
> >> + select RTC_LIB if !EFI
> >> select SPARSE_IRQ
> >> select SYSCTL_EXCEPTION_TRACE
> >> select HAVE_CONTEXT_TRACKING
> >
> > Sorry, we can't do that: enabling EFI has to be done in a way that it only
> > adds features but not disables them.
>
> I run "make ARCH=arm64 menuconfig" and found that RTC_CLASS is selected by default. Actually, RTC_LIB only
> controls whether to display some configs when run "make menuconfig". I list all informations below:
>
> ---------make ARCH=arm64 menuconfig-----
> [*] Real Time Clock --->
>
> ---------drivers/rtc/Kconfig-------
> menuconfig RTC_CLASS
> bool "Real Time Clock"
> default n
> depends on !S390 && !UML
> select RTC_LIB

Ok, I see. So your patch here has no effect at all and can be dropped, or
we can remove the 'select RTC_LIB' without the EFI dependency.

> -----------------------------------
> find . -name "*Kconfig*" | xargs grep RTC_LIB
> ./drivers/rtc/Kconfig:config RTC_LIB
> ./drivers/rtc/Kconfig: select RTC_LIB
> ./drivers/char/Kconfig:if RTC_LIB=n
> ./drivers/char/Kconfig:endif # RTC_LIB
> ./arch/x86/Kconfig: select RTC_LIB
> ./arch/arm/Kconfig: select RTC_LIB
> ./arch/arm64/Kconfig: select RTC_LIB if !EFI
> ./arch/sh/Kconfig: select RTC_LIB
> ./arch/mips/Kconfig: select RTC_LIB if !MACH_LOONGSON64
>
> --------------drivers/char/Kconfig--------------
> if RTC_LIB=n
>
> config RTC
> tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
>
> .......
>
> endif # RTC_LIB
>
>
> >
> > Your patch breaks RTC on all non-EFI platforms as soon as CONFIG_EFI
> > is selected by the user.
>
> No, on non-EFI platforms, they can still use RTC as before. As I mentioned above,
> RTC_LIB only controls whether to display some configs when run "make menuconfig".
> On ARM64, (in this patch) I only allowed EFI_RTC can be showed when RTC_LIB was
> not selected.
>

but that is the wrong driver that uses the legacy API, we cannot have that
on ARM because it conflicts with the normal RTC_CLASS drivers.

> --------------drivers/char/Kconfig--------------
> if RTC_LIB=n
>
> config RTC
> tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
>
> .......
>
> config EFI_RTC
> bool "EFI Real Time Clock Services"
> depends on IA64 || ARM64
>
> .......
>
> endif # RTC_LIB

The driver you want is RTC_DRV_EFI, not EFI_RTC.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/