Frans Pop wrote: > I wanted to test 5a50fe709d527f31 and thus created a config with ACPI and > CONFIG_HIBERNATION, but without CONFIG_SUSPEND, which resulted in (git > checkout updated to 1f0cff6e4d579ab0): > > GEN .version > CHK include/linux/compile.h > UPD include/linux/compile.h > CC init/version.o > LD init/built-in.o > LD .tmp_vmlinux1 > drivers/built-in.o: In function `acpi_power_off_prepare': > main.c:(.text+0x32282): undefined reference to `acpi_sleep_prepare' > drivers/built-in.o: In function `acpi_hibernation_prepare': > main.c:(.text+0x3228c): undefined reference to `acpi_sleep_prepare' > make[1]: *** [.tmp_vmlinux1] Error 1 > make[1]: Leaving directory `/home/fjp/projects/kernel/linux-2.6' > make: *** [debian/stamp-build-kernel] Error 2 > > yep... acpi_sleep_prepare was put under CONFIG_SUSPEND spanning half of the file... this patch moves it out. Thanks, Alex.
ACPI: suspend: move acpi_sleep_prepare outside of CONFIG_SUSPEND From: Alexey Starikovskiy <astarikovskiy@xxxxxxx> Signed-off-by: Alexey Starikovskiy <astarikovskiy@xxxxxxx> --- drivers/acpi/sleep/main.c | 42 +++++++++++++++++++++--------------------- 1 files changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index 85633c5..c79edcb 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c @@ -26,6 +26,27 @@ u8 sleep_states[ACPI_S_STATE_COUNT]; static u32 acpi_target_sleep_state = ACPI_STATE_S0; +int acpi_sleep_prepare(u32 acpi_state) +{ +#ifdef CONFIG_ACPI_SLEEP + /* do we have a wakeup address for S2 and S3? */ + if (acpi_state == ACPI_STATE_S3) { + if (!acpi_wakeup_address) { + return -EFAULT; + } + acpi_set_firmware_waking_vector((acpi_physical_address) + virt_to_phys((void *) + acpi_wakeup_address)); + + } + ACPI_FLUSH_CPU_CACHE(); + acpi_enable_wakeup_device_prep(acpi_state); +#endif + acpi_gpe_sleep_prepare(acpi_state); + acpi_enter_sleep_state_prep(acpi_state); + return 0; +} + #ifdef CONFIG_SUSPEND static struct pm_ops acpi_pm_ops; @@ -60,27 +81,6 @@ static int acpi_pm_set_target(suspend_state_t pm_state) return error; } -int acpi_sleep_prepare(u32 acpi_state) -{ -#ifdef CONFIG_ACPI_SLEEP - /* do we have a wakeup address for S2 and S3? */ - if (acpi_state == ACPI_STATE_S3) { - if (!acpi_wakeup_address) { - return -EFAULT; - } - acpi_set_firmware_waking_vector((acpi_physical_address) - virt_to_phys((void *) - acpi_wakeup_address)); - - } - ACPI_FLUSH_CPU_CACHE(); - acpi_enable_wakeup_device_prep(acpi_state); -#endif - acpi_gpe_sleep_prepare(acpi_state); - acpi_enter_sleep_state_prep(acpi_state); - return 0; -} - /** * acpi_pm_prepare - Do preliminary suspend work. * @pm_state: ignored