Commit 96078642 authored by Sean Christopherson's avatar Sean Christopherson Committed by Ingo Molnar

x86/ACPI/sleep: Move acpi_get_wakeup_address() into sleep.c, remove...

x86/ACPI/sleep: Move acpi_get_wakeup_address() into sleep.c, remove <asm/realmode.h> from <asm/acpi.h>

Move the definition of acpi_get_wakeup_address() into sleep.c to break
linux/acpi.h's dependency (by way of asm/acpi.h) on asm/realmode.h.
Everyone and their mother includes linux/acpi.h, i.e. modifying
realmode.h results in a full kernel rebuild, which makes the already
inscrutable real mode boot code even more difficult to understand and is
positively rage inducing when trying to make changes to x86's boot flow.

No functional change intended.
Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
Link: https://lkml.kernel.org/r/20191126165417.22423-13-sean.j.christopherson@intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 8c53b318
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <asm/processor.h> #include <asm/processor.h>
#include <asm/mmu.h> #include <asm/mmu.h>
#include <asm/mpspec.h> #include <asm/mpspec.h>
#include <asm/realmode.h>
#include <asm/x86_init.h> #include <asm/x86_init.h>
#ifdef CONFIG_ACPI_APEI #ifdef CONFIG_ACPI_APEI
...@@ -62,10 +61,7 @@ static inline void acpi_disable_pci(void) ...@@ -62,10 +61,7 @@ static inline void acpi_disable_pci(void)
extern int (*acpi_suspend_lowlevel)(void); extern int (*acpi_suspend_lowlevel)(void);
/* Physical address to resume after wakeup */ /* Physical address to resume after wakeup */
static inline unsigned long acpi_get_wakeup_address(void) unsigned long acpi_get_wakeup_address(void);
{
return ((unsigned long)(real_mode_header->wakeup_start));
}
/* /*
* Check if the CPU can handle C2 and deeper * Check if the CPU can handle C2 and deeper
......
...@@ -26,6 +26,17 @@ unsigned long acpi_realmode_flags; ...@@ -26,6 +26,17 @@ unsigned long acpi_realmode_flags;
static char temp_stack[4096]; static char temp_stack[4096];
#endif #endif
/**
* acpi_get_wakeup_address - provide physical address for S3 wakeup
*
* Returns the physical address where the kernel should be resumed after the
* system awakes from S3, e.g. for programming into the firmware waking vector.
*/
unsigned long acpi_get_wakeup_address(void)
{
return ((unsigned long)(real_mode_header->wakeup_start));
}
/** /**
* x86_acpi_enter_sleep_state - enter sleep state * x86_acpi_enter_sleep_state - enter sleep state
* @state: Sleep state to enter. * @state: Sleep state to enter.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment