aboutsummaryrefslogtreecommitdiff
path: root/drivers/acpi
diff options
context:
space:
mode:
authorJarkko Sakkinen2012-05-08 21:22:29 +0300
committerH. Peter Anvin2012-05-08 11:46:05 -0700
commitc9b77ccb52a5c77233b0e557b7d4417b00ef4012 (patch)
tree152d1c9b60796db21458583a76b57f995c4cd3bf /drivers/acpi
parent48927bbb97c7d4cf343c05827ab9ac30c60678cb (diff)
x86, realmode: Move ACPI wakeup to unified realmode code
Migrated ACPI wakeup code to the real-mode blob. Code existing in .x86_trampoline can be completely removed. Static descriptor table in wakeup_asm.S is courtesy of H. Peter Anvin. Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com> Link: http://lkml.kernel.org/r/1336501366-28617-7-git-send-email-jarkko.sakkinen@intel.com Cc: Rafael J. Wysocki <rjw@sisk.pl> Cc: Len Brown <len.brown@intel.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/sleep.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index eb6fd233764b..e77aa4a1c9f6 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -25,6 +25,8 @@
#include <acpi/acpi_bus.h>
#include <acpi/acpi_drivers.h>
+#include <asm/realmode.h>
+
#include "internal.h"
#include "sleep.h"
@@ -91,13 +93,13 @@ static struct notifier_block tts_notifier = {
static int acpi_sleep_prepare(u32 acpi_state)
{
#ifdef CONFIG_ACPI_SLEEP
+ unsigned long wakeup_pa = real_mode_header.wakeup_start;
/* do we have a wakeup address for S2 and S3? */
if (acpi_state == ACPI_STATE_S3) {
- if (!acpi_wakeup_address) {
+ if (!wakeup_pa)
return -EFAULT;
- }
acpi_set_firmware_waking_vector(
- (acpi_physical_address)acpi_wakeup_address);
+ (acpi_physical_address)wakeup_pa);
}
ACPI_FLUSH_CPU_CACHE();