From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757260AbbI1Jr0 (ORCPT ); Mon, 28 Sep 2015 05:47:26 -0400 Received: from szxga03-in.huawei.com ([119.145.14.66]:54323 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757099AbbI1JrZ (ORCPT ); Mon, 28 Sep 2015 05:47:25 -0400 Subject: Re: [PATCH 2/2] arm64: to allow EFI_RTC can be selected on ARM64 To: Arnd Bergmann References: <1443418478-8240-1-git-send-email-thunder.leizhen@huawei.com> <1783631.jH4WY2RqXu@wuerfel> <5608FA85.8070009@huawei.com> <2245172.1ESUGv0DKo@wuerfel> CC: , Catalin Marinas , Will Deacon , "Greg Kroah-Hartman" , linux-kernel , Kefeng Wang , Xinwei Hu , Zefan Li , Tianhong Ding , Hanjun Guo From: "Leizhen (ThunderTown)" Message-ID: <56090C08.8070003@huawei.com> Date: Mon, 28 Sep 2015 17:44:40 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <2245172.1ESUGv0DKo@wuerfel> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.23.164] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090205.56090C26.002E,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: d2147aef47e7f04ca952332879e54ca0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2015/9/28 16:42, Arnd Bergmann wrote: > 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. Oh, I described the reason in the reply to Ard Biesheuvel. https://lkml.org/lkml/2015/9/28/124 > >> ----------------------------------- >> 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. Yes, RTC_CLASS will automatically select RTC_LIB, and will not display EFI_RTC, because RTC_LIB=y now. We can select EFI_RTC only when RTC_CLASS is not selected(meanwhile RTC_LIB=n) > >> --------------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. OK, I will try it tommorrow. > > Arnd > > . >