From: Annie Li <annie.li@oracle.com>
To: qemu-devel@nongnu.org
Cc: mst@redhat.com, imammedo@redhat.com, philmd@linaro.org,
zhao1.liu@intel.com, Jonathan.Cameron@huawei.com,
annie.li@oracle.com
Subject: [RFC V3 PATCH 03/13] acpi: Support Control Method sleep button for x86
Date: Fri, 11 Apr 2025 16:34:06 -0400 [thread overview]
Message-ID: <20250411203406.2930-1-annie.li@oracle.com> (raw)
In-Reply-To: <20250411201912.2872-1-annie.li@oracle.com>
Add Control Method Sleep button and its GPE event handler for
x86 platform. The GPE event handler notifies OSPM when the
Sleep button event is triggered.
Signed-off-by: Annie Li <annie.li@oracle.com>
---
hw/i386/acpi-build.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 3fffa4a332..4be3595e5a 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -40,6 +40,7 @@
#include "hw/acpi/acpi_aml_interface.h"
#include "hw/input/i8042.h"
#include "hw/acpi/memory_hotplug.h"
+#include "hw/acpi/control_method_device.h"
#include "system/tpm.h"
#include "hw/acpi/tpm.h"
#include "hw/acpi/vmgenid.h"
@@ -1359,7 +1360,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
NULL);
Object *q35 = object_resolve_type_unambiguous(TYPE_Q35_HOST_DEVICE, NULL);
CrsRangeEntry *entry;
- Aml *dsdt, *sb_scope, *scope, *dev, *method, *field, *pkg, *crs;
+ Aml *dsdt, *sb_scope, *scope, *dev, *method, *field, *pkg, *crs, *condition;
CrsRangeSet crs_range_set;
PCMachineState *pcms = PC_MACHINE(machine);
PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(machine);
@@ -1465,6 +1466,25 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
}
aml_append(dsdt, scope);
+ sb_scope = aml_scope("_SB");
+ acpi_dsdt_add_sleep_button(sb_scope);
+ aml_append(dsdt, sb_scope);
+
+ /*
+ * The event handler for the control method sleep button is generated
+ * for notifying OSPM[ACPI v6.5 Section 4.8.2.2.2.].
+ */
+ scope = aml_scope("\\_GPE");
+ method = aml_method("_L07", 0, AML_NOTSERIALIZED);
+ condition = aml_if(aml_name("\\_SB.SLPB.SBP"));
+ aml_append(condition, aml_store(aml_int(1), aml_name("\\_SB.SLPB.SBP")));
+ aml_append(condition,
+ aml_notify(aml_name("\\_SB."ACPI_SLEEP_BUTTON_DEVICE),
+ aml_int(0x80)));
+ aml_append(method, condition);
+ aml_append(scope, method);
+ aml_append(dsdt, scope);
+
if (pcmc->legacy_cpu_hotplug) {
build_legacy_cpu_hotplug_aml(dsdt, machine, pm->cpu_hp_io_base);
} else {
--
2.43.5
next prev parent reply other threads:[~2025-04-11 20:35 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-11 20:19 [RFC V3 PATCH 00/13] Support ACPI Control Method Sleep button Annie Li
2025-04-11 20:28 ` [RFC V3 PATCH 01/13] acpi: Implement control method sleep button Annie Li
2025-04-17 17:28 ` Gustavo Romero
2025-04-17 18:40 ` Annie Li
2025-04-11 20:31 ` [RFC V3 PATCH 02/13] test/acpi: allow DSDT table changes for x86 platform Annie Li
2025-04-17 17:29 ` Gustavo Romero
2025-04-17 18:42 ` Annie Li
2025-04-11 20:34 ` Annie Li [this message]
2025-04-17 17:30 ` [RFC V3 PATCH 03/13] acpi: Support Control Method sleep button for x86 Gustavo Romero
2025-04-17 18:42 ` Annie Li
2025-04-11 20:39 ` [RFC V3 PATCH 04/13] tests/qtest/bios-table-tests: Update ACPI table binaries " Annie Li
2025-04-17 17:31 ` Gustavo Romero
2025-04-17 18:44 ` Annie Li
2025-04-11 20:41 ` [RFC V3 PATCH 05/13] acpi: Send the GPE event of suspend and wakeup " Annie Li
2025-04-14 15:18 ` Alex Bennée
2025-04-15 1:24 ` Annie Li
2025-04-15 15:29 ` Philippe Mathieu-Daudé
2025-04-15 21:48 ` Annie Li
2025-04-16 6:24 ` Philippe Mathieu-Daudé
2025-04-17 17:32 ` Gustavo Romero
2025-04-17 18:48 ` Annie Li
2025-04-17 17:40 ` Gustavo Romero
2025-04-17 18:46 ` Annie Li
2025-04-11 20:42 ` [RFC V3 PATCH 06/13] test/acpi: allow DSDT table changes for microvm Annie Li
2025-04-17 17:33 ` Gustavo Romero
2025-04-17 18:48 ` Annie Li
2025-04-11 20:42 ` [RFC V3 PATCH 07/13] microvm: support control method sleep button Annie Li
2025-04-17 17:34 ` Gustavo Romero
2025-04-17 18:49 ` Annie Li
2025-04-11 20:42 ` [RFC V3 PATCH 08/13] hw/acpi: Add ACPI GED support for the sleep event Annie Li
2025-04-17 17:35 ` Gustavo Romero
2025-04-11 20:43 ` [RFC V3 PATCH 09/13] microvm: enable sleep GED event Annie Li
2025-04-17 17:35 ` Gustavo Romero
2025-04-17 18:49 ` Annie Li
2025-04-11 20:44 ` [RFC V3 PATCH 10/13] tests/qtest/bios-table-tests: Update ACPI table binaries for microvm Annie Li
2025-04-17 17:36 ` Gustavo Romero
2025-04-17 18:50 ` Annie Li
2025-04-11 20:44 ` [RFC V3 PATCH 11/13] microvm: suspend the system as requested Annie Li
2025-04-17 17:37 ` Gustavo Romero
2025-04-11 20:44 ` [RFC V3 PATCH 12/13] microvm: enable suspend Annie Li
2025-04-17 17:37 ` Gustavo Romero
2025-04-11 20:45 ` [RFC V3 PATCH 13/13] acpi: hmp/qmp: Add hmp/qmp support for system_sleep Annie Li
2025-04-14 6:31 ` Markus Armbruster
2025-04-14 14:14 ` Annie Li
2025-04-17 17:37 ` Gustavo Romero
2025-04-17 18:51 ` Annie Li
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=20250411203406.2930-1-annie.li@oracle.com \
--to=annie.li@oracle.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=zhao1.liu@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;
as well as URLs for NNTP newsgroup(s).