get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2194462/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2194462,
    "url": "http://patchwork.ozlabs.org/api/patches/2194462/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/202602091025447146cbSJ01TP_ckm5Y-zJv5X@zte.com.cn/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<202602091025447146cbSJ01TP_ckm5Y-zJv5X@zte.com.cn>",
    "list_archive_url": null,
    "date": "2026-02-09T02:25:44",
    "name": "[v6,2/4] hw/riscv/virt: Add acpi ged support",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "78a9dc4b220e4af9b12173bda4979ecbc6a78c5a",
    "submitter": {
        "id": 90817,
        "url": "http://patchwork.ozlabs.org/api/people/90817/?format=api",
        "name": "",
        "email": "liu.xuemei1@zte.com.cn"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/202602091025447146cbSJ01TP_ckm5Y-zJv5X@zte.com.cn/mbox/",
    "series": [
        {
            "id": 491459,
            "url": "http://patchwork.ozlabs.org/api/series/491459/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491459",
            "date": "2026-02-09T02:21:28",
            "name": "hw/riscv/virt: Add acpi ged and powerdown support",
            "version": 6,
            "mbox": "http://patchwork.ozlabs.org/series/491459/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2194462/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2194462/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)",
        "Received": [
            "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f8T8L0NNYz1xvc\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 09 Feb 2026 13:26:10 +1100 (AEDT)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vpGyO-00055n-JD; Sun, 08 Feb 2026 21:26:00 -0500",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <liu.xuemei1@zte.com.cn>)\n id 1vpGyM-000556-7T; Sun, 08 Feb 2026 21:25:58 -0500",
            "from mxct.zte.com.cn ([183.62.165.209])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <liu.xuemei1@zte.com.cn>)\n id 1vpGyK-0007bN-0S; Sun, 08 Feb 2026 21:25:57 -0500",
            "from mse-fl1.zte.com.cn (unknown [10.5.228.132])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mxct.zte.com.cn (FangMail) with ESMTPS id 4f8T7w1Dljz4xQX7;\n Mon, 09 Feb 2026 10:25:48 +0800 (CST)",
            "from xaxapp02.zte.com.cn ([10.88.97.241])\n by mse-fl1.zte.com.cn with SMTP id 6192PhpW092062;\n Mon, 9 Feb 2026 10:25:43 +0800 (+08)\n (envelope-from liu.xuemei1@zte.com.cn)",
            "from mapi (xaxapp05[null]) by mapi (Zmail) with MAPI id mid32;\n Mon, 9 Feb 2026 10:25:44 +0800 (CST)"
        ],
        "X-Zmail-TransId": "2afc698945a813d-8f702",
        "X-Mailer": "Zmail v1.0",
        "Message-ID": "<202602091025447146cbSJ01TP_ckm5Y-zJv5X@zte.com.cn>",
        "In-Reply-To": "<20260209102128930gN_7xu7bNIZcEawnIz3c7@zte.com.cn>",
        "References": "20260209102128930gN_7xu7bNIZcEawnIz3c7@zte.com.cn",
        "Date": "Mon, 9 Feb 2026 10:25:44 +0800 (CST)",
        "Mime-Version": "1.0",
        "From": "<liu.xuemei1@zte.com.cn>",
        "To": "<imammedo@redhat.com>, <alistair.francis@wdc.com>,\n <dbarboza@ventanamicro.com>, <sunilvl@ventanamicro.com>,\n <anisinha@redhat.com>",
        "Cc": "<pbonzini@redhat.com>, <palmer@dabbelt.com>, <liwei1518@gmail.com>,\n <zhiwei_liu@linux.alibaba.com>, <mst@redhat.com>,\n <qemu-devel@nongnu.org>, <qemu-riscv@nongnu.org>, <liu.xuemei1@zte.com.cn>",
        "Subject": "=?utf-8?q?=5BPATCH_v6_2/4=5D_hw/riscv/virt=3A_Add_acpi_ged_support?=",
        "Content-Type": "text/plain;\n\tcharset=\"UTF-8\"",
        "X-MAIL": "mse-fl1.zte.com.cn 6192PhpW092062",
        "X-TLS": "YES",
        "X-SPF-DOMAIN": "zte.com.cn",
        "X-ENVELOPE-SENDER": "liu.xuemei1@zte.com.cn",
        "X-SPF": "None",
        "X-SOURCE-IP": "10.5.228.132 unknown Mon, 09 Feb 2026 10:25:48 +0800",
        "X-Fangmail-Anti-Spam-Filtered": "true",
        "X-Fangmail-MID-QID": "698945AC.000/4f8T7w1Dljz4xQX7",
        "Received-SPF": "pass client-ip=183.62.165.209;\n envelope-from=liu.xuemei1@zte.com.cn; helo=mxct.zte.com.cn",
        "X-Spam_score_int": "-31",
        "X-Spam_score": "-3.2",
        "X-Spam_bar": "---",
        "X-Spam_report": "(-3.2 / 5.0 requ) BAYES_00=-1.9, CTE_8BIT_MISMATCH=0.951,\n RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "From: Xuemei Liu <liu.xuemei1@zte.com.cn>\n\nThis patch adds ACPI Generic Event Device (GED) support to\nthe RISC-V virt machine.\n\nCo-authored-by: Björn Töpel <bjorn@rivosinc.com>\nSigned-off-by: Xuemei Liu <liu.xuemei1@zte.com.cn>\n---\n hw/riscv/Kconfig           |  1 +\n hw/riscv/virt-acpi-build.c |  6 ++++++\n hw/riscv/virt.c            | 23 +++++++++++++++++++++++\n include/hw/riscv/virt.h    |  3 +++\n 4 files changed, 33 insertions(+)",
    "diff": "diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig\nindex 0222c93f87..3dad43669f 100644\n--- a/hw/riscv/Kconfig\n+++ b/hw/riscv/Kconfig\n@@ -68,6 +68,7 @@ config RISCV_VIRT\n     select PLATFORM_BUS\n     select ACPI\n     select ACPI_PCI\n+    select ACPI_HW_REDUCED\n\n config SHAKTI_C\n     bool\ndiff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c\nindex f1406cb683..1717b1c24f 100644\n--- a/hw/riscv/virt-acpi-build.c\n+++ b/hw/riscv/virt-acpi-build.c\n@@ -27,6 +27,7 @@\n #include \"hw/acpi/acpi-defs.h\"\n #include \"hw/acpi/acpi.h\"\n #include \"hw/acpi/aml-build.h\"\n+#include \"hw/acpi/generic_event_device.h\"\n #include \"hw/acpi/pci.h\"\n #include \"hw/acpi/utils.h\"\n #include \"hw/intc/riscv_aclint.h\"\n@@ -498,6 +499,11 @@ static void build_dsdt(GArray *table_data,\n         acpi_dsdt_add_gpex_host(scope, PCIE_IRQ + VIRT_IRQCHIP_NUM_SOURCES * 2);\n     }\n\n+    build_ged_aml(scope, \"\\\\_SB.\"GED_DEVICE,\n+                  HOTPLUG_HANDLER(s->acpi_ged),\n+                  ACPI_GED_IRQ, AML_SYSTEM_MEMORY,\n+                  s->memmap[VIRT_ACPI_GED].base);\n+\n     aml_append(dsdt, scope);\n\n     /* copy AML table into ACPI tables blob and patch header there */\ndiff --git a/hw/riscv/virt.c b/hw/riscv/virt.c\nindex bd8608ea5b..1d7011b952 100644\n--- a/hw/riscv/virt.c\n+++ b/hw/riscv/virt.c\n@@ -55,6 +55,7 @@\n #include \"hw/pci-host/gpex.h\"\n #include \"hw/display/ramfb.h\"\n #include \"hw/acpi/aml-build.h\"\n+#include \"hw/acpi/generic_event_device.h\"\n #include \"qapi/qapi-visit-common.h\"\n #include \"hw/virtio/virtio-iommu.h\"\n #include \"hw/uefi/var-service-api.h\"\n@@ -95,6 +96,7 @@ static const MemMapEntry virt_memmap[] = {\n     [VIRT_UART0] =        { 0x10000000,         0x100 },\n     [VIRT_VIRTIO] =       { 0x10001000,        0x1000 },\n     [VIRT_FW_CFG] =       { 0x10100000,          0x18 },\n+    [VIRT_ACPI_GED] =     { 0x10101000, ACPI_GED_EVT_SEL_LEN },\n     [VIRT_FLASH] =        { 0x20000000,     0x4000000 },\n     [VIRT_IMSIC_M] =      { 0x24000000, VIRT_IMSIC_MAX_SIZE },\n     [VIRT_IMSIC_S] =      { 0x28000000, VIRT_IMSIC_MAX_SIZE },\n@@ -1270,6 +1272,22 @@ static inline DeviceState *gpex_pcie_init(MemoryRegion *sys_mem,\n     return dev;\n }\n\n+static DeviceState *create_acpi_ged(RISCVVirtState *s, DeviceState *irqchip)\n+{\n+    DeviceState *dev;\n+    uint32_t event = ACPI_GED_PWR_DOWN_EVT;\n+\n+    dev = qdev_new(TYPE_ACPI_GED);\n+    qdev_prop_set_uint32(dev, \"ged-event\", event);\n+    sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);\n+\n+    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, s->memmap[VIRT_ACPI_GED].base);\n+    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0,\n+                       qdev_get_gpio_in(irqchip, ACPI_GED_IRQ));\n+\n+    return dev;\n+}\n+\n static FWCfgState *create_fw_cfg(const MachineState *ms, hwaddr base)\n {\n     FWCfgState *fw_cfg;\n@@ -1702,6 +1720,11 @@ static void virt_machine_init(MachineState *machine)\n\n     create_platform_bus(s, mmio_irqchip);\n\n+    /* acpi ged */\n+    if (virt_is_acpi_enabled(s)) {\n+        s->acpi_ged = create_acpi_ged(s, mmio_irqchip);\n+    }\n+\n     serial_mm_init(system_memory, s->memmap[VIRT_UART0].base,\n         0, qdev_get_gpio_in(mmio_irqchip, UART0_IRQ), 399193,\n         serial_hd(0), DEVICE_LITTLE_ENDIAN);\ndiff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h\nindex 18a2a323a3..9ea0b3b7b6 100644\n--- a/include/hw/riscv/virt.h\n+++ b/include/hw/riscv/virt.h\n@@ -47,6 +47,7 @@ struct RISCVVirtState {\n\n     /*< public >*/\n     Notifier machine_done;\n+    DeviceState *acpi_ged;\n     DeviceState *platform_bus_dev;\n     RISCVHartArrayState soc[VIRT_SOCKETS_MAX];\n     DeviceState *irqchip[VIRT_SOCKETS_MAX];\n@@ -88,9 +89,11 @@ enum {\n     VIRT_PLATFORM_BUS,\n     VIRT_PCIE_ECAM,\n     VIRT_IOMMU_SYS,\n+    VIRT_ACPI_GED,\n };\n\n enum {\n+    ACPI_GED_IRQ = 9,\n     UART0_IRQ = 10,\n     RTC_IRQ = 11,\n     VIRTIO_IRQ = 1, /* 1 to 8 */\n",
    "prefixes": [
        "v6",
        "2/4"
    ]
}