get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2218210,
    "url": "http://patchwork.ozlabs.org/api/patches/2218210/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260331170823.72511-2-soumyajyotisarkar23@gmail.com/",
    "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": "<20260331170823.72511-2-soumyajyotisarkar23@gmail.com>",
    "list_archive_url": null,
    "date": "2026-03-31T17:08:19",
    "name": "[RFC,1/5] input/hid: add horizontal pan to pointer event path",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "88177c014d8813b85d00aa186c1a384551f2ef54",
    "submitter": {
        "id": 91019,
        "url": "http://patchwork.ozlabs.org/api/people/91019/?format=api",
        "name": "Soumyajyotii Ssarkar",
        "email": "soumyajyotisarkar23@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260331170823.72511-2-soumyajyotisarkar23@gmail.com/mbox/",
    "series": [
        {
            "id": 498231,
            "url": "http://patchwork.ozlabs.org/api/series/498231/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=498231",
            "date": "2026-03-31T17:08:18",
            "name": "Add high-resolution 2D mouse wheel support to USB HID",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498231/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2218210/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218210/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\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=V8Z6Wv4X;\n\tdkim-atps=neutral",
            "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 4flZN32VZsz1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 01 Apr 2026 04:09:07 +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 1w7ca3-0003Zi-28; Tue, 31 Mar 2026 13:08:43 -0400",
            "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 <soumyajyotisarkar23@gmail.com>)\n id 1w7ca0-0003ZD-TN\n for qemu-devel@nongnu.org; Tue, 31 Mar 2026 13:08:40 -0400",
            "from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <soumyajyotisarkar23@gmail.com>)\n id 1w7cZz-0003BZ-Bc\n for qemu-devel@nongnu.org; Tue, 31 Mar 2026 13:08:40 -0400",
            "by mail-pf1-x442.google.com with SMTP id\n d2e1a72fcca58-82cd9d0eceaso829347b3a.3\n for <qemu-devel@nongnu.org>; Tue, 31 Mar 2026 10:08:38 -0700 (PDT)",
            "from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82ca843b818sm13647889b3a.6.2026.03.31.10.08.32\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 31 Mar 2026 10:08:36 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1774976917; x=1775581717; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=t6Oeyhq61VM068HLUikqnd7NmAFwnBHXZU5fNxj+eTU=;\n b=V8Z6Wv4XUPaIzvGvJE9kvcLtRVXnpQ03FNvit33g4d8cH2HAXDds5UrU2VQ92w6CBg\n rDAhdyc/Li6OWaAgBhC73s0YNnfAEftKlGhGfU8pfMCrdE0Wd4XEJ6zzOvR8+O4AY+30\n rFTj6VCE3ukztu+TK/npvEIwavCTENUz1c/HZWdO7VFMVQKZtJCsHWzXZ5rxkV8PRhMb\n 2IMFYF0nccpU4tARwLE4Fe+cbXUq6ZhrehiX7A/8U8GONFmZg0ggaIUo0dRt8POYJC61\n d5Wm/sa36e/M5iEWCBWdLzoSdSYc+KTsh2/P5y2SRHB614HxFlQCp6NIFnH4Z6N59dBM\n CXNA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774976917; x=1775581717;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=t6Oeyhq61VM068HLUikqnd7NmAFwnBHXZU5fNxj+eTU=;\n b=XI0IA6UZ/p1rl1lqoC4TrmDaNmzUXJ8+7vt9ORasPdGycsj1aPlux+gUUH1pR17ToQ\n pul0aQ4E9oD00J6Qii+TSdXC4RvrWQvmiFmaTCD4/VSB47r6luClsP/ClPK2Q3VBIb+o\n WykOdbMdBmZmZnsRt3D2D5BCyBQHqJhpsm1PKUC83VQFS5bJi8QUfkKyCRswOuNainYc\n zEyFEHsbMH2O+OzY5w6Gy37ieUJFz5jB33CTcenzY8ggfRbhWc33FsQls/xK4f3JtBRs\n GgLJXl/kEJb8DyWdDBPvwzlzO7zMCepdA8R91pC5mH5w0FiXH65tD59dNC2tw78H5neT\n JOXg==",
        "X-Gm-Message-State": "AOJu0Ywiw4nfODSmX5GalzxhN2khLCEnOIyADgdueOoZ997TDOwoZA6Y\n e/a/Rhp97w4u/nXOFAnr9bnkL5JyN60PWb1Py01YI3c4BsR6Zqv/GNKTVm/KmSUJ",
        "X-Gm-Gg": "ATEYQzwbmVjBXEt9GRU1Z9pDd/MeVOBY5/NLv2ziHbQ9LAkzXpvqpJ4j9jDUyhlboiR\n GYSXjSjN1XRC2q7AdTJbWyJUzazdHKHXrEmb1SfAIvv9XVAr4e6S4nmzw2Ip11Wyz1hsYjoTRKd\n rEgTGS09YMcqDgcn56NkXDQZdR72i1wJwGWui1KvfrdeJ/PNHq8CMocivZNGmLZfV30pu6UTRJw\n Pn1y7UPuWMc4jDQWsrkXm4xrvY7k0VX4w0OiDAw50zYzePD2HBSgrSenEvDfqhCU/BiFN3aZ5A7\n SYzW3gZGRUFcpsPEqDwJUpIVmPoeu2K1VPW6BYBXS+3oHJWr2aP+9/6e+Hbgsa/5J0PqO1IW1ss\n glXriEv+NpCHmEuLPZPDVH7l6ZZwWfBinH5w2kDov1TmXx2ElT7lX9DAHSAZul3gZzlUdA8SpwD\n 5/qY8ULn70mu6ocLtbhzLEUBlxwMIAiO8/F1jXR4RReEZTpBbzG5DR08BfT1oUhvU3rsBYUpszG\n ZAoCXzK5ugmZbhkPJsEUm6kgKUezkNLkbLmE2lUHV/ttlAzCReP5Md8Zud+xuvBycrABdRpcw==",
        "X-Received": "by 2002:a05:6a00:bd03:b0:82a:8865:6fe6 with SMTP id\n d2e1a72fcca58-82ce8af75f9mr335102b3a.28.1774976917084;\n Tue, 31 Mar 2026 10:08:37 -0700 (PDT)",
        "From": "Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "Richard Henderson <richard.henderson@linaro.org>,\n Paolo Bonzini <pbonzini@redhat.com>,\n Soumyajyotii Ssarkar <sarkarsoumyajyoti23@gmail.com>,\n Michael Tokarev <mjt@tls.msk.ru>, Thomas Lambertz <patch@thomaslambertz.de>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n Alex Golovko <alex@browserling.com>, ShengYi Hung <aokblast@FreeBSD.org>,\n Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>",
        "Subject": "[RFC PATCH 1/5] input/hid: add horizontal pan to pointer event path",
        "Date": "Tue, 31 Mar 2026 22:38:19 +0530",
        "Message-ID": "<20260331170823.72511-2-soumyajyotisarkar23@gmail.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260331170823.72511-1-soumyajyotisarkar23@gmail.com>",
        "References": "<20260331170823.72511-1-soumyajyotisarkar23@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=2607:f8b0:4864:20::442;\n envelope-from=soumyajyotisarkar23@gmail.com; helo=mail-pf1-x442.google.com",
        "X-Spam_score_int": "-17",
        "X-Spam_score": "-1.8",
        "X-Spam_bar": "-",
        "X-Spam_report": "(-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-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": "Add support for horizontal wheel scrolling (pan) in the HID mouse\nimplementation. Extend the HIDPointerEvent structure with \"pan\" field\nto track horizontal scroll deltas, similar to the existing 'dz' field\nfor vertical scrolling.\n\nMap INPUT_BUTTON_WHEEL_LEFT and INPUT_BUTTON_WHEEL_RIGHT to pan delta\nchanges in the event handler. Integrate pan field handling into event\ncompression logic and queue management to ensure consistent behavior with\nvertical wheel events.\n\nThis changes enables subsequent patches to implement\nmultiplier based scaling and protocol aware reporting for horizontal\nscrolling.\n\nSigned-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>\n---\n hw/input/hid.c         | 13 ++++++++++++-\n include/hw/input/hid.h |  1 +\n 2 files changed, 13 insertions(+), 1 deletion(-)\n\n--\n2.53.0",
    "diff": "diff --git a/hw/input/hid.c b/hw/input/hid.c\nindex de24cd0ef0..457dbb0096 100644\n--- a/hw/input/hid.c\n+++ b/hw/input/hid.c\n@@ -152,6 +152,10 @@ static void hid_pointer_event(DeviceState *dev, QemuConsole *src,\n                 e->dz--;\n             } else if (btn->button == INPUT_BUTTON_WHEEL_DOWN) {\n                 e->dz++;\n+            } else if (btn->button == INPUT_BUTTON_WHEEL_LEFT) {\n+                e->pan--;\n+            } else if (btn->button == INPUT_BUTTON_WHEEL_RIGHT) {\n+                e->pan++;\n             }\n         } else {\n             e->buttons_state &= ~bmap[btn->button];\n@@ -208,6 +212,8 @@ static void hid_pointer_sync(DeviceState *dev)\n         }\n         prev->dz += curr->dz;\n         curr->dz = 0;\n+        prev->pan += curr->pan;\n+        curr->pan = 0;\n     } else {\n         /* prepare next (clear rel, copy abs + btns) */\n         if (hs->kind == HID_MOUSE) {\n@@ -218,6 +224,7 @@ static void hid_pointer_sync(DeviceState *dev)\n             next->ydy = curr->ydy;\n         }\n         next->dz = 0;\n+        next->pan = 0;\n         next->buttons_state = curr->buttons_state;\n         /* make current guest visible, notify guest */\n         hs->n++;\n@@ -357,7 +364,7 @@ void hid_pointer_activate(HIDState *hs)\n\n int hid_pointer_poll(HIDState *hs, uint8_t *buf, int len)\n {\n-    int dx, dy, dz, l;\n+    int dx, dy, dz, pan, l;\n     int index;\n     HIDPointerEvent *e;\n\n@@ -381,9 +388,13 @@ int hid_pointer_poll(HIDState *hs, uint8_t *buf, int len)\n     }\n     dz = int_clamp(e->dz, -127, 127);\n     e->dz -= dz;\n+    pan = int_clamp(e->pan, -127, 127);\n+    e->pan -= pan;\n+\n\n     if (hs->n &&\n         !e->dz &&\n+        !e->pan &&\n         (hs->kind == HID_TABLET || (!e->xdx && !e->ydy))) {\n         /* that deals with this event */\n         QUEUE_INCR(hs->head);\ndiff --git a/include/hw/input/hid.h b/include/hw/input/hid.h\nindex 6a9d7bf466..1bb1778ee7 100644\n--- a/include/hw/input/hid.h\n+++ b/include/hw/input/hid.h\n@@ -10,6 +10,7 @@\n typedef struct HIDPointerEvent {\n     int32_t xdx, ydy; /* relative iff it's a mouse, otherwise absolute */\n     int32_t dz, buttons_state;\n+    int32_t pan;\n } HIDPointerEvent;\n\n #define QUEUE_LENGTH    16 /* should be enough for a triple-click */\n",
    "prefixes": [
        "RFC",
        "1/5"
    ]
}