X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Facpi%2Fglue.c;h=9b227d4dc9c9bbd43b7649b66b7ee311371f7eaf;hb=77b96bd7e5ee0b44aed1b77fef5949bc19e8301f;hp=06f8634fe58b192498ad73c5e4d4a4e715b01cf3;hpb=a15306365a16380f3bafee9e181ba01231d4acd7;p=linux-2.6 diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index 06f8634fe5..9b227d4dc9 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c @@ -272,6 +272,12 @@ static u32 rtc_handler(void *context) static inline void rtc_wake_setup(void) { acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL); + /* + * After the RTC handler is installed, the Fixed_RTC event should + * be disabled. Only when the RTC alarm is set will it be enabled. + */ + acpi_clear_event(ACPI_EVENT_RTC); + acpi_disable_event(ACPI_EVENT_RTC, 0); } static void rtc_wake_on(struct device *dev) @@ -327,6 +333,9 @@ static int __init acpi_rtc_init(void) { struct device *dev = get_rtc_dev(); + if (acpi_disabled) + return 0; + if (dev) { rtc_wake_setup(); rtc_info.wake_on = rtc_wake_on;