diff options
| -rw-r--r-- | drivers/acpi/glue.c | 6 | ||||
| -rw-r--r-- | drivers/acpi/sleep/proc.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index 06f8634fe58b..2808dc60fd67 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c | |||
| @@ -272,6 +272,12 @@ static u32 rtc_handler(void *context) | |||
| 272 | static inline void rtc_wake_setup(void) | 272 | static inline void rtc_wake_setup(void) |
| 273 | { | 273 | { |
| 274 | acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL); | 274 | acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL); |
| 275 | /* | ||
| 276 | * After the RTC handler is installed, the Fixed_RTC event should | ||
| 277 | * be disabled. Only when the RTC alarm is set will it be enabled. | ||
| 278 | */ | ||
| 279 | acpi_clear_event(ACPI_EVENT_RTC); | ||
| 280 | acpi_disable_event(ACPI_EVENT_RTC, 0); | ||
| 275 | } | 281 | } |
| 276 | 282 | ||
| 277 | static void rtc_wake_on(struct device *dev) | 283 | static void rtc_wake_on(struct device *dev) |
diff --git a/drivers/acpi/sleep/proc.c b/drivers/acpi/sleep/proc.c index 8a5fe8710513..224c57c03381 100644 --- a/drivers/acpi/sleep/proc.c +++ b/drivers/acpi/sleep/proc.c | |||
| @@ -495,6 +495,12 @@ static int __init acpi_sleep_proc_init(void) | |||
| 495 | acpi_root_dir, &acpi_system_alarm_fops); | 495 | acpi_root_dir, &acpi_system_alarm_fops); |
| 496 | 496 | ||
| 497 | acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL); | 497 | acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL); |
| 498 | /* | ||
| 499 | * Disable the RTC event after installing RTC handler. | ||
| 500 | * Only when RTC alarm is set will it be enabled. | ||
| 501 | */ | ||
| 502 | acpi_clear_event(ACPI_EVENT_RTC); | ||
| 503 | acpi_disable_event(ACPI_EVENT_RTC, 0); | ||
| 498 | #endif /* HAVE_ACPI_LEGACY_ALARM */ | 504 | #endif /* HAVE_ACPI_LEGACY_ALARM */ |
| 499 | 505 | ||
| 500 | /* 'wakeup device' [R/W] */ | 506 | /* 'wakeup device' [R/W] */ |
