From: "Michał Grzelak" <michal.grzelak@intel.com>
To: intel-xe@lists.freedesktop.org, intel-gfx-trybot@lists.freedesktop.org
Cc: jani.saarinen@intel.com, suresh.kumar.kurmi@intel.com,
mohammed.thasleem@intel.com,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: [CI v2 2/2] ACPI: PM: s2idle: Add module parameter for LPS0 constraints checking
Date: Sat, 10 Jan 2026 16:44:05 +0100 [thread overview]
Message-ID: <20260110154405.2825339-3-michal.grzelak@intel.com> (raw)
In-Reply-To: <20260110154405.2825339-1-michal.grzelak@intel.com>
From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Commit 32ece31db4df ("ACPI: PM: s2idle: Only retrieve constraints when
needed") attempted to avoid useless evaluation of LPS0 _DSM Function 1
in lps0_device_attach() because pm_debug_messages_on might never be set
(and that is the case on production systems most of the time), but it
turns out that LPS0 _DSM Function 1 is generally problematic on some
platforms and causes suspend issues to occur when pm_debug_messages_on
is set now.
In Linux, LPS0 _DSM Function 1 is only useful for diagnostics and only
in the cases when the system does not reach the deepest platform idle
state during suspend-to-idle for some reason. If such diagnostics is
not necessary, evaluating it is a loss of time, so using it along with
the other pm_debug_messages_on diagnostics is questionable because the
latter is expected to be suitable for collecting debug information even
during production use of system suspend.
For this reason, add a module parameter called check_lps0_constraints
to control whether or not the list of LPS0 constraints will be checked
in acpi_s2idle_prepare_late_lps0() and so whether or not to evaluate
LPS0 _DSM Function 1 (once) in acpi_s2idle_begin_lps0().
Fixes: 32ece31db4df ("ACPI: PM: s2idle: Only retrieve constraints when needed")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/x86/s2idle.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 2a9edb53d5d4..cc3c83e4cc23 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -28,6 +28,10 @@ static bool sleep_no_lps0 __read_mostly;
module_param(sleep_no_lps0, bool, 0644);
MODULE_PARM_DESC(sleep_no_lps0, "Do not use the special LPS0 device interface");
+static bool check_lps0_constraints __read_mostly;
+module_param(check_lps0_constraints, bool, 0644);
+MODULE_PARM_DESC(check_lps0_constraints, "Check LPS0 device constraints");
+
static const struct acpi_device_id lps0_device_ids[] = {
{"PNP0D80", },
{"", },
@@ -515,7 +519,7 @@ static struct acpi_scan_handler lps0_handler = {
static int acpi_s2idle_begin_lps0(void)
{
- if (lps0_device_handle && !sleep_no_lps0 && pm_debug_messages_on &&
+ if (lps0_device_handle && !sleep_no_lps0 && check_lps0_constraints &&
!lpi_constraints_table) {
if (acpi_s2idle_vendor_amd())
lpi_device_get_constraints_amd();
@@ -540,7 +544,7 @@ static int acpi_s2idle_prepare_late_lps0(void)
if (!lps0_device_handle || sleep_no_lps0)
return 0;
- if (pm_debug_messages_on)
+ if (check_lps0_constraints)
lpi_check_constraints();
/* Screen off */
--
2.45.2
next prev parent reply other threads:[~2026-01-10 15:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-10 15:44 [CI v2 0/2] acpi: pm: s2idle: LPS0 changes Michał Grzelak
2026-01-10 15:44 ` [CI v2 1/2] ACPI: PM: s2idle: Add missing checks to acpi_s2idle_begin_lps0() Michał Grzelak
2026-01-12 16:50 ` Michał Grzelak
2026-01-10 15:44 ` Michał Grzelak [this message]
2026-01-12 16:52 ` [CI v2 2/2] ACPI: PM: s2idle: Add module parameter for LPS0 constraints checking Michał Grzelak
2026-01-10 15:53 ` ✓ CI.KUnit: success for acpi: pm: s2idle: LPS0 changes Patchwork
2026-01-10 16:27 ` ✓ Xe.CI.BAT: " Patchwork
2026-01-10 17:23 ` ✗ Xe.CI.Full: failure " Patchwork
2026-01-12 17:05 ` [CI v2 0/2] " Michał Grzelak
2026-01-12 21:59 ` Rodrigo Vivi
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=20260110154405.2825339-3-michal.grzelak@intel.com \
--to=michal.grzelak@intel.com \
--cc=intel-gfx-trybot@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.saarinen@intel.com \
--cc=mohammed.thasleem@intel.com \
--cc=rafael.j.wysocki@intel.com \
--cc=suresh.kumar.kurmi@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox