--- /dev/null
+From 2e41e3ca4729455e002bcb585f0d3749ee66d572 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Tue, 2 May 2023 17:04:34 +0200
+Subject: PM: suspend: Fix pm_suspend_target_state handling for !CONFIG_PM
+
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+
+commit 2e41e3ca4729455e002bcb585f0d3749ee66d572 upstream.
+
+Move the pm_suspend_target_state definition for CONFIG_SUSPEND
+unset from the wakeup code into the headers so as to allow it
+to still be used elsewhere when CONFIG_SUSPEND is not set.
+
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+[ rjw: Changelog and subject edits ]
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Cc: Adrian Hunter <adrian.hunter@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/base/power/wakeup.c | 5 -----
+ include/linux/suspend.h | 4 +++-
+ 2 files changed, 3 insertions(+), 6 deletions(-)
+
+--- a/drivers/base/power/wakeup.c
++++ b/drivers/base/power/wakeup.c
+@@ -19,11 +19,6 @@
+
+ #include "power.h"
+
+-#ifndef CONFIG_SUSPEND
+-suspend_state_t pm_suspend_target_state;
+-#define pm_suspend_target_state (PM_SUSPEND_ON)
+-#endif
+-
+ #define list_for_each_entry_rcu_locked(pos, head, member) \
+ list_for_each_entry_rcu(pos, head, member, \
+ srcu_read_lock_held(&wakeup_srcu))
+--- a/include/linux/suspend.h
++++ b/include/linux/suspend.h
+@@ -199,6 +199,7 @@ struct platform_s2idle_ops {
+ };
+
+ #ifdef CONFIG_SUSPEND
++extern suspend_state_t pm_suspend_target_state;
+ extern suspend_state_t mem_sleep_current;
+ extern suspend_state_t mem_sleep_default;
+
+@@ -334,6 +335,8 @@ extern bool sync_on_suspend_enabled;
+ #else /* !CONFIG_SUSPEND */
+ #define suspend_valid_only_mem NULL
+
++#define pm_suspend_target_state (PM_SUSPEND_ON)
++
+ static inline void pm_suspend_clear_flags(void) {}
+ static inline void pm_set_suspend_via_firmware(void) {}
+ static inline void pm_set_resume_via_firmware(void) {}
+@@ -498,7 +501,6 @@ extern void ksys_sync_helper(void);
+
+ /* drivers/base/power/wakeup.c */
+ extern bool events_check_enabled;
+-extern suspend_state_t pm_suspend_target_state;
+
+ extern bool pm_wakeup_pending(void);
+ extern void pm_system_wakeup(void);