[tip:x86/boot] x86/ACPI: Move ACPI_FADT_NO_CMOS_RTC check to ACPI boot code

From: tip-bot for Luis R. Rodriguez
Date: Fri Apr 22 2016 - 05:52:11 EST


Commit-ID: 088a8ef8207f19aadbade0971af21ad89fdc3815
Gitweb: http://git.kernel.org/tip/088a8ef8207f19aadbade0971af21ad89fdc3815
Author: Luis R. Rodriguez <mcgrof@xxxxxxxxxx>
AuthorDate: Wed, 13 Apr 2016 17:04:35 -0700
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitDate: Fri, 22 Apr 2016 10:29:01 +0200

x86/ACPI: Move ACPI_FADT_NO_CMOS_RTC check to ACPI boot code

This moves the ACPI specific check into the ACPI boot code,
it also takes advantage of the x86_platform.legacy.rtc which
is checked for already on the RTC initialization code. This
lets us remove the nasty #ifdefery and consolidate the checks
to use only one toggle to disable the RTC init code.

The works as RTC is initialized by device_initcall(add_rtc_cmos),
this will run late in boot on start_kernel() during rest_init(),
acpi_parse_fadt() gets called earlier during setup_arch().

Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: andrew.cooper3@xxxxxxxxxx
Cc: andriy.shevchenko@xxxxxxxxxxxxxxx
Cc: bigeasy@xxxxxxxxxxxxx
Cc: boris.ostrovsky@xxxxxxxxxx
Cc: david.vrabel@xxxxxxxxxx
Cc: ffainelli@xxxxxxxxxx
Cc: george.dunlap@xxxxxxxxxx
Cc: glin@xxxxxxxx
Cc: jgross@xxxxxxxx
Cc: jlee@xxxxxxxx
Cc: josh@xxxxxxxxxxxxxxxx
Cc: julien.grall@xxxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: kozerkov@xxxxxxxxxxxxx
Cc: lenb@xxxxxxxxxx
Cc: lguest@xxxxxxxxxxxxxxxx
Cc: linux-acpi@xxxxxxxxxxxxxxx
Cc: lv.zheng@xxxxxxxxx
Cc: matt@xxxxxxxxxxxxxxxxxxx
Cc: mbizon@xxxxxxxxxx
Cc: rjw@xxxxxxxxxxxxx
Cc: robert.moore@xxxxxxxxx
Cc: rusty@xxxxxxxxxxxxxxx
Cc: tiwai@xxxxxxx
Cc: toshi.kani@xxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/1460592286-300-6-git-send-email-mcgrof@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
arch/x86/kernel/acpi/boot.c | 4 ++++
arch/x86/kernel/rtc.c | 8 --------
2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 8c2f1ef..8c9c2bd 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -913,6 +913,10 @@ late_initcall(hpet_insert_resource);

static int __init acpi_parse_fadt(struct acpi_table_header *table)
{
+ if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC) {
+ pr_debug("ACPI: not registering RTC platform device\n");
+ x86_platform.legacy.rtc = 0;
+ }

#ifdef CONFIG_X86_PM_TIMER
/* detect the location of the ACPI PM Timer */
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
index 62c48da..ff4f418 100644
--- a/arch/x86/kernel/rtc.c
+++ b/arch/x86/kernel/rtc.c
@@ -189,14 +189,6 @@ static __init int add_rtc_cmos(void)
if (of_have_populated_dt())
return 0;

-#ifdef CONFIG_ACPI
- if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC) {
- /* This warning can likely go away again in a year or two. */
- pr_info("ACPI: not registering RTC platform device\n");
- return -ENODEV;
- }
-#endif
-
if (!x86_platform.legacy.rtc)
return -ENODEV;