Skip to content
  • Zhang Rui's avatar
    rtc: cmos: acknowledge ACPI driven wake alarms upon resume · c6d3a278
    Zhang Rui authored
    
    
    Previously, the RTC alarm is acknowledged either by the cmos rtc irq
    handler, or by the hpet rtc irq handler.
    
    When using ACPI RTC Fixed event as the RTC alarm, the RTC alarm is
    acknowledged by the ACPI RTC event handler, as addressed in the previous
    patch.
    But, when resume from suspend-to-ram (ACPI S3), the ACPI SCI is cleared
    right after resume, thus the ACPI RTC event handler is not invoked at all,
    results in the RTC Alarm unacknowledged.
    
    Handle this by comparing the current time and the RTC Alarm time in the
    rtc_cmos driver .resume() callback
    1. Assume the wakeup event has already been fired if the RTC Alarm time
       is earlier than/equal to the current time, and ACK the RTC Alarm.
    2. Assume the wakeup event has not been fired if the RTC Alarm time
       is later than current time, and re-arm it if needed.
    
    Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
    Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
    c6d3a278