|
@@ -70,6 +70,14 @@ acpi_system_write_sleep(struct file *file,
|
|
|
}
|
|
|
#endif /* CONFIG_ACPI_SLEEP_PROC_SLEEP */
|
|
|
|
|
|
+#if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE)
|
|
|
+/* use /sys/class/rtc/rtcX/wakealarm instead; it's not ACPI-specific */
|
|
|
+#else
|
|
|
+#define HAVE_ACPI_LEGACY_ALARM
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef HAVE_ACPI_LEGACY_ALARM
|
|
|
+
|
|
|
static int acpi_system_alarm_seq_show(struct seq_file *seq, void *offset)
|
|
|
{
|
|
|
u32 sec, min, hr;
|
|
@@ -341,6 +349,8 @@ acpi_system_write_alarm(struct file *file,
|
|
|
end:
|
|
|
return_VALUE(result ? result : count);
|
|
|
}
|
|
|
+#endif /* HAVE_ACPI_LEGACY_ALARM */
|
|
|
+
|
|
|
|
|
|
extern struct list_head acpi_wakeup_device_list;
|
|
|
extern spinlock_t acpi_device_lock;
|
|
@@ -464,6 +474,7 @@ static const struct file_operations acpi_system_sleep_fops = {
|
|
|
};
|
|
|
#endif /* CONFIG_ACPI_SLEEP_PROC_SLEEP */
|
|
|
|
|
|
+#ifdef HAVE_ACPI_LEGACY_ALARM
|
|
|
static const struct file_operations acpi_system_alarm_fops = {
|
|
|
.open = acpi_system_alarm_open_fs,
|
|
|
.read = seq_read,
|
|
@@ -479,8 +490,9 @@ static u32 rtc_handler(void *context)
|
|
|
|
|
|
return ACPI_INTERRUPT_HANDLED;
|
|
|
}
|
|
|
+#endif /* HAVE_ACPI_LEGACY_ALARM */
|
|
|
|
|
|
-static int acpi_sleep_proc_init(void)
|
|
|
+static int __init acpi_sleep_proc_init(void)
|
|
|
{
|
|
|
struct proc_dir_entry *entry = NULL;
|
|
|
|
|
@@ -496,6 +508,7 @@ static int acpi_sleep_proc_init(void)
|
|
|
entry->proc_fops = &acpi_system_sleep_fops;
|
|
|
#endif
|
|
|
|
|
|
+#ifdef HAVE_ACPI_LEGACY_ALARM
|
|
|
/* 'alarm' [R/W] */
|
|
|
entry =
|
|
|
create_proc_entry("alarm", S_IFREG | S_IRUGO | S_IWUSR,
|
|
@@ -503,6 +516,9 @@ static int acpi_sleep_proc_init(void)
|
|
|
if (entry)
|
|
|
entry->proc_fops = &acpi_system_alarm_fops;
|
|
|
|
|
|
+ acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL);
|
|
|
+#endif /* HAVE_ACPI_LEGACY_ALARM */
|
|
|
+
|
|
|
/* 'wakeup device' [R/W] */
|
|
|
entry =
|
|
|
create_proc_entry("wakeup", S_IFREG | S_IRUGO | S_IWUSR,
|
|
@@ -510,7 +526,6 @@ static int acpi_sleep_proc_init(void)
|
|
|
if (entry)
|
|
|
entry->proc_fops = &acpi_system_wakeup_device_fops;
|
|
|
|
|
|
- acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL);
|
|
|
return 0;
|
|
|
}
|
|
|
|