Skip to content

Commit db5dab0

Browse files
committed
rtc: cmos: Enable ACPI alarm if advertised in ACPI FADT
If the ACPI_FADT_FIXED_RTC flag is unset, the platform is declaring that it supports the ACPI RTC fixed event which should be used instead of a dedicated CMOS RTC IRQ. However, the driver only enables it when is_hpet_enabled() returns true, which is questionable because there is no clear connection between enabled HPET and signaling wakeup via the ACPI RTC fixed event (for instance, the latter can be expected to work on systems that don't include a functional HPET). Moreover, since use_hpet_alarm() returns false if use_acpi_alarm is set, the ACPI RTC fixed event is effectively used instead of the HPET alarm if the latter is functional, but there is no particular reason why it could not be used otherwise. Accordingly, on x86 systems with ACPI, set use_acpi_alarm if ACPI_FADT_FIXED_RTC is unset without looking at whether or not HPET is enabled. Also, do the ACPI FADT check in use_acpi_alarm_quirks() before the DMI BIOS year checks which are more expensive and it's better to skip them if ACPI_FADT_FIXED_RTC is set. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org> Link: https://patch.msgid.link/9618535.CDJkKcVGEf@rafael.j.wysocki
1 parent e8d1eb6 commit db5dab0

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

drivers/rtc/rtc-cmos.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -817,6 +817,9 @@ static void rtc_wake_off(struct device *dev)
817817
#ifdef CONFIG_X86
818818
static void use_acpi_alarm_quirks(void)
819819
{
820+
if (acpi_gbl_FADT.flags & ACPI_FADT_FIXED_RTC)
821+
return;
822+
820823
switch (boot_cpu_data.x86_vendor) {
821824
case X86_VENDOR_INTEL:
822825
if (dmi_get_bios_year() < 2015)
@@ -830,8 +833,6 @@ static void use_acpi_alarm_quirks(void)
830833
default:
831834
return;
832835
}
833-
if (!is_hpet_enabled())
834-
return;
835836

836837
use_acpi_alarm = true;
837838
}

0 commit comments

Comments
 (0)