From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: "Linux PM" <linux-pm@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
"Mario Limonciello" <mario.limonciello@amd.com>,
"Bjorn Helgaas" <helgaas@kernel.org>,
"Linux PCI" <linux-pci@vger.kernel.org>,
"x86 Maintainers" <x86@kernel.org>,
intel-xe@lists.freedesktop.org,
"Lucas De Marchi" <lucas.demarchi@intel.com>,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Subject: Re: [PATCH v1 2/3] PM: sleep: Introduce pm_suspend_in_progress()
Date: Fri, 9 May 2025 11:52:19 -0400 [thread overview]
Message-ID: <aB4ks2JgJeO6DD5s@intel.com> (raw)
In-Reply-To: <2020901.PYKUYFuaPT@rjwysocki.net>
On Fri, May 09, 2025 at 03:02:27PM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Introduce pm_suspend_in_progress() to be used for checking if a system-
> wide suspend or resume transition is in progress, instead of comparing
> pm_suspend_target_state directly to PM_SUSPEND_ON, and use it where
> applicable.
>
> No intentional functional impact.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>
> The only change in this patch that depends in the [1/3] is in
> kernel/power/main.c and it is not relevant for PCI/x86 and xe.
>
> ---
> arch/x86/pci/fixup.c | 4 ++--
> drivers/base/power/wakeup.c | 2 +-
> drivers/gpu/drm/xe/xe_pm.c | 2 +-
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
to merge this through your trees
> include/linux/suspend.h | 5 +++++
> kernel/power/main.c | 4 ++--
> 5 files changed, 11 insertions(+), 6 deletions(-)
>
> --- a/arch/x86/pci/fixup.c
> +++ b/arch/x86/pci/fixup.c
> @@ -970,13 +970,13 @@
> struct pci_dev *rp;
>
> /*
> - * PM_SUSPEND_ON means we're doing runtime suspend, which means
> + * If system suspend is not in progress, we're doing runtime suspend, so
> * amd-pmc will not be involved so PMEs during D3 work as advertised.
> *
> * The PMEs *do* work if amd-pmc doesn't put the SoC in the hardware
> * sleep state, but we assume amd-pmc is always present.
> */
> - if (pm_suspend_target_state == PM_SUSPEND_ON)
> + if (!pm_suspend_in_progress())
> return;
>
> rp = pcie_find_root_port(dev);
> --- a/drivers/base/power/wakeup.c
> +++ b/drivers/base/power/wakeup.c
> @@ -337,7 +337,7 @@
> if (!dev || !dev->power.can_wakeup)
> return -EINVAL;
>
> - if (pm_suspend_target_state != PM_SUSPEND_ON)
> + if (pm_suspend_in_progress())
> dev_dbg(dev, "Suspicious %s() during system transition!\n", __func__);
>
> ws = wakeup_source_register(dev, dev_name(dev));
> --- a/drivers/gpu/drm/xe/xe_pm.c
> +++ b/drivers/gpu/drm/xe/xe_pm.c
> @@ -641,7 +641,7 @@
>
> return dev->power.runtime_status == RPM_SUSPENDING ||
> dev->power.runtime_status == RPM_RESUMING ||
> - pm_suspend_target_state != PM_SUSPEND_ON;
> + pm_suspend_in_progress();
> #else
> return false;
> #endif
> --- a/include/linux/suspend.h
> +++ b/include/linux/suspend.h
> @@ -298,6 +298,11 @@
> static inline void s2idle_wake(void) {}
> #endif /* !CONFIG_SUSPEND */
>
> +static inline bool pm_suspend_in_progress(void)
> +{
> + return pm_suspend_target_state != PM_SUSPEND_ON;
> +}
> +
> /* struct pbe is used for creating lists of pages that should be restored
> * atomically during the resume from disk, because the page frames they have
> * occupied before the suspend are in use.
> --- a/kernel/power/main.c
> +++ b/kernel/power/main.c
> @@ -613,8 +613,8 @@
>
> bool pm_debug_messages_should_print(void)
> {
> - return pm_debug_messages_on && (hibernation_in_progress() ||
> - pm_suspend_target_state != PM_SUSPEND_ON);
> + return pm_debug_messages_on && (pm_suspend_in_progress() ||
> + hibernation_in_progress());
> }
> EXPORT_SYMBOL_GPL(pm_debug_messages_should_print);
>
>
>
>
next prev parent reply other threads:[~2025-05-09 15:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-09 12:49 [PATCH v1 0/3] PM: sleep: Updates related to pm_suspend_target_state Rafael J. Wysocki
2025-05-09 12:51 ` [PATCH v1 1/3] PM: sleep: Print PM debug messages during hibernation Rafael J. Wysocki
2025-05-09 13:02 ` [PATCH v1 2/3] PM: sleep: Introduce pm_suspend_in_progress() Rafael J. Wysocki
2025-05-09 15:52 ` Rodrigo Vivi [this message]
2025-05-09 16:20 ` Raag Jadav
2025-05-09 13:03 ` [PATCH v1 3/3] PM: sleep: Introduce pm_sleep_transition_in_progress() Rafael J. Wysocki
2025-05-09 13:33 ` [PATCH v1 0/3] PM: sleep: Updates related to pm_suspend_target_state Mario Limonciello
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aB4ks2JgJeO6DD5s@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=helgaas@kernel.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lucas.demarchi@intel.com \
--cc=mario.limonciello@amd.com \
--cc=rjw@rjwysocki.net \
--cc=thomas.hellstrom@linux.intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.