mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 15:11:50 +00:00
rtc-cmos / PM: report wakeup event on ACPI RTC alarm
When the ACPI-driven RTC alarm wakes the system, report it as a wakeup event. This allows userspace to determine that the reason for system wakeup was RTC alarm. Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
This commit is contained in:
parent
c10d7a1384
commit
b2201e5482
@ -910,14 +910,17 @@ static inline int cmos_poweroff(struct device *dev)
|
||||
|
||||
static u32 rtc_handler(void *context)
|
||||
{
|
||||
struct device *dev = context;
|
||||
|
||||
pm_wakeup_event(dev, 0);
|
||||
acpi_clear_event(ACPI_EVENT_RTC);
|
||||
acpi_disable_event(ACPI_EVENT_RTC, 0);
|
||||
return ACPI_INTERRUPT_HANDLED;
|
||||
}
|
||||
|
||||
static inline void rtc_wake_setup(void)
|
||||
static inline void rtc_wake_setup(struct device *dev)
|
||||
{
|
||||
acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL);
|
||||
acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, dev);
|
||||
/*
|
||||
* After the RTC handler is installed, the Fixed_RTC event should
|
||||
* be disabled. Only when the RTC alarm is set will it be enabled.
|
||||
@ -950,7 +953,7 @@ cmos_wake_setup(struct device *dev)
|
||||
if (acpi_disabled)
|
||||
return;
|
||||
|
||||
rtc_wake_setup();
|
||||
rtc_wake_setup(dev);
|
||||
acpi_rtc_info.wake_on = rtc_wake_on;
|
||||
acpi_rtc_info.wake_off = rtc_wake_off;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user