From 0d588c4f999699a430b32c563fe9ccc1710b8fd7 Mon Sep 17 00:00:00 2001 From: Song Gao Date: Tue, 10 Jan 2023 11:29:16 +0800 Subject: hw/loongarch/virt: add system_powerdown hmp command support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For loongarch virt machine, add powerdown notification callback and send ACPI_POWER_DOWN_STATUS event by acpi ged. Also add acpi dsdt table for ACPI_POWER_BUTTON_DEVICE device in this patch. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Song Gao Message-Id: <20230303010548.295580-1-gaosong@loongson.cn> --- hw/loongarch/virt.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'hw/loongarch/virt.c') diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index 49d25059f8..38ef7cc49f 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -316,6 +316,14 @@ static void virt_machine_done(Notifier *notifier, void *data) loongarch_acpi_setup(lams); } +static void virt_powerdown_req(Notifier *notifier, void *opaque) +{ + LoongArchMachineState *s = container_of(notifier, + LoongArchMachineState, powerdown_notifier); + + acpi_send_event(s->acpi_ged, ACPI_POWER_DOWN_STATUS); +} + struct memmap_entry { uint64_t address; uint64_t length; @@ -859,6 +867,10 @@ static void loongarch_init(MachineState *machine) VIRT_PLATFORM_BUS_IRQ); lams->machine_done.notify = virt_machine_done; qemu_add_machine_init_done_notifier(&lams->machine_done); + /* connect powerdown request */ + lams->powerdown_notifier.notify = virt_powerdown_req; + qemu_register_powerdown_notifier(&lams->powerdown_notifier); + fdt_add_pcie_node(lams); /* * Since lowmem region starts from 0 and Linux kernel legacy start address -- cgit 1.4.1