Commit 1cf62488 authored by Huacai Chen's avatar Huacai Chen

LoongArch: Fix build error if CONFIG_SUSPEND is not set

We can see the following build error on LoongArch if CONFIG_SUSPEND is
not set:

  ld: drivers/acpi/sleep.o: in function 'acpi_pm_prepare':
  sleep.c:(.text+0x2b8): undefined reference to 'loongarch_wakeup_start'

Here is the call trace:

  acpi_pm_prepare()
    __acpi_pm_prepare()
      acpi_sleep_prepare()
        acpi_get_wakeup_address()
          loongarch_wakeup_start()

Root cause: loongarch_wakeup_start() is defined in arch/loongarch/power/
suspend_asm.S which is only built under CONFIG_SUSPEND. In order to fix
the build error, just let acpi_get_wakeup_address() return 0 if CONFIG_
SUSPEND is not set.

Fixes: 366bb35a ("LoongArch: Add suspend (ACPI S3) support")
Reviewed-by: default avatarWANG Xuerui <git@xen0n.name>
Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/all/11215033-fa3c-ecb1-2fc0-e9aeba47be9b@infradead.org/Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent df830336
...@@ -41,8 +41,11 @@ extern void loongarch_suspend_enter(void); ...@@ -41,8 +41,11 @@ extern void loongarch_suspend_enter(void);
static inline unsigned long acpi_get_wakeup_address(void) static inline unsigned long acpi_get_wakeup_address(void)
{ {
#ifdef CONFIG_SUSPEND
extern void loongarch_wakeup_start(void); extern void loongarch_wakeup_start(void);
return (unsigned long)loongarch_wakeup_start; return (unsigned long)loongarch_wakeup_start;
#endif
return 0UL;
} }
#endif /* _ASM_LOONGARCH_ACPI_H */ #endif /* _ASM_LOONGARCH_ACPI_H */
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