get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2218262,
    "url": "http://patchwork.ozlabs.org/api/patches/2218262/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/rtc-linux/patch/23076728.EfDdHjke4D@rafael.j.wysocki/",
    "project": {
        "id": 9,
        "url": "http://patchwork.ozlabs.org/api/projects/9/?format=api",
        "name": "Linux RTC development",
        "link_name": "rtc-linux",
        "list_id": "linux-rtc.vger.kernel.org",
        "list_email": "linux-rtc@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<23076728.EfDdHjke4D@rafael.j.wysocki>",
    "list_archive_url": null,
    "date": "2026-03-31T19:24:44",
    "name": "[v1,1/4] ACPI: TAD: Split three functions to untangle runtime PM handling",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "244590d6a9a2b06d152a5bf519dc40d5b6fe83e6",
    "submitter": {
        "id": 64267,
        "url": "http://patchwork.ozlabs.org/api/people/64267/?format=api",
        "name": "Rafael J. Wysocki",
        "email": "rafael@kernel.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/rtc-linux/patch/23076728.EfDdHjke4D@rafael.j.wysocki/mbox/",
    "series": [
        {
            "id": 498243,
            "url": "http://patchwork.ozlabs.org/api/series/498243/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/rtc-linux/list/?series=498243",
            "date": "2026-03-31T19:25:40",
            "name": "ACPI: TAD: Add alarm support to RTC class device interface",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498243/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2218262/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218262/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-rtc+bounces-6272-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-rtc@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=XbNajO/n;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-rtc+bounces-6272-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"XbNajO/n\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fldnq5Dg6z1yCp\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 01 Apr 2026 06:43:11 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id D5AE830BF616\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 19:39:30 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 293F741C311;\n\tTue, 31 Mar 2026 19:39:19 +0000 (UTC)",
            "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 04A9E3DA5B9;\n\tTue, 31 Mar 2026 19:39:19 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id E1992C19423;\n\tTue, 31 Mar 2026 19:39:17 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774985959; cv=none;\n b=fSvL0il9753iav7SZvsI3wJhWIYwMrdKCCn4DvcAtABKnF5A7KA0UiexuQNoNdOPkF4luoa2AQR1ujhFAs5GWNUK5h32NuV4IMmyQNatAR77X0oM4ZSXBVB4EpMVxLMfv35xoQlq2VaUnsAF2Kk5ausWAlbsXy5sjYo64TRMdKM=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774985959; c=relaxed/simple;\n\tbh=YvurszLvPDMVP72P36RPxOuz5Oy7cq1WNQnYabSads0=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=WAxWprNmlurjg7lC9vJAJsQUdC5MjsecUIIt8h1iDW3rSZUwOyo3DSm/XQOXOkqYfxsN+EdokuR5ccUlWsXJ9OI7xHF7DEb3jWgWFa7if8u/HJjlvDjEjgCpGxQcSRLCikeTfXFvRIODoAV64cVjXq3gqrvHfPtekHevcOJY91k=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=XbNajO/n; arc=none smtp.client-ip=10.30.226.201",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1774985958;\n\tbh=YvurszLvPDMVP72P36RPxOuz5Oy7cq1WNQnYabSads0=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=XbNajO/nRg2arvH2fzRdexY7bvafvHPSt2wu2Fv7qVko9fGg7jF7I/yN+R1LHqq7+\n\t o1wiUzGwl4iUKr85EAB6xjdB1apv4E2IhvK25zjvPNm9KdFFRh5q5RZ7Nt6uBVMFf7\n\t +hpo+Y4oX4BFHjVoi6XutlH9dEMxj6ma84pPmUWIOdX1rVL3monapFHdXTPw364Dhp\n\t vYbMdoYGhpYvRAJILe46hCnMS3mTukCrH4xqS6GjOi5SnLSNmDfhv30FFTLamLnvl2\n\t mBJGXCcxVZG2SAj4zQVMYpMzmg1WININUWxYYjkNQ5xF3j2cZWVQ+gyhsdKZ7/VrLa\n\t MB6gW/HVdwzsw==",
        "From": "\"Rafael J. Wysocki\" <rafael@kernel.org>",
        "To": "Linux ACPI <linux-acpi@vger.kernel.org>",
        "Cc": "linux-rtc@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,\n Alexandre Belloni <alexandre.belloni@bootlin.com>",
        "Subject": "\n [PATCH v1 1/4] ACPI: TAD: Split three functions to untangle runtime PM\n handling",
        "Date": "Tue, 31 Mar 2026 21:24:44 +0200",
        "Message-ID": "<23076728.EfDdHjke4D@rafael.j.wysocki>",
        "Organization": "Linux Kernel Development",
        "In-Reply-To": "<2366642.iZASKD2KPV@rafael.j.wysocki>",
        "References": "<2366642.iZASKD2KPV@rafael.j.wysocki>",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-rtc@vger.kernel.org",
        "List-Id": "<linux-rtc.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-rtc+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-rtc+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "7Bit",
        "Content-Type": "text/plain; charset=\"UTF-8\""
    },
    "content": "From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n\nMove the core functionality of acpi_tad_get_real_time(),\nacpi_tad_wake_set(), and acpi_tad_wake_read() into separate functions\ncalled __acpi_tad_get_real_time(), __acpi_tad_wake_set(), and\n__acpi_tad_wake_read(), respectively, which can be called from\ncode blocks following a single runtime resume of the device.\n\nThis will facilitate adding alarm support to the RTC class device\ninterface of the driver going forward.\n\nNo intentional functional impact.\n\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n---\n drivers/acpi/acpi_tad.c |   57 +++++++++++++++++++++++++++++++++---------------\n 1 file changed, 40 insertions(+), 17 deletions(-)",
    "diff": "--- a/drivers/acpi/acpi_tad.c\n+++ b/drivers/acpi/acpi_tad.c\n@@ -151,14 +151,10 @@ out_free:\n \treturn ret;\n }\n \n-static int acpi_tad_get_real_time(struct device *dev, struct acpi_tad_rt *rt)\n+static int __acpi_tad_get_real_time(struct device *dev, struct acpi_tad_rt *rt)\n {\n \tint ret;\n \n-\tPM_RUNTIME_ACQUIRE(dev, pm);\n-\tif (PM_RUNTIME_ACQUIRE_ERR(&pm))\n-\t\treturn -ENXIO;\n-\n \tret = acpi_tad_evaluate_grt(dev, rt);\n \tif (ret)\n \t\treturn ret;\n@@ -169,6 +165,15 @@ static int acpi_tad_get_real_time(struct\n \treturn 0;\n }\n \n+static int acpi_tad_get_real_time(struct device *dev, struct acpi_tad_rt *rt)\n+{\n+\tPM_RUNTIME_ACQUIRE(dev, pm);\n+\tif (PM_RUNTIME_ACQUIRE_ERR(&pm))\n+\t\treturn -ENXIO;\n+\n+\treturn __acpi_tad_get_real_time(dev, rt);\n+}\n+\n /* sysfs interface */\n \n static char *acpi_tad_rt_next_field(char *s, int *val)\n@@ -268,8 +273,8 @@ static ssize_t time_show(struct device *\n \n static DEVICE_ATTR_RW(time);\n \n-static int acpi_tad_wake_set(struct device *dev, char *method, u32 timer_id,\n-\t\t\t     u32 value)\n+static int __acpi_tad_wake_set(struct device *dev, char *method, u32 timer_id,\n+\t\t\t       u32 value)\n {\n \tacpi_handle handle = ACPI_HANDLE(dev);\n \tunion acpi_object args[] = {\n@@ -286,10 +291,6 @@ static int acpi_tad_wake_set(struct devi\n \targs[0].integer.value = timer_id;\n \targs[1].integer.value = value;\n \n-\tPM_RUNTIME_ACQUIRE(dev, pm);\n-\tif (PM_RUNTIME_ACQUIRE_ERR(&pm))\n-\t\treturn -ENXIO;\n-\n \tstatus = acpi_evaluate_integer(handle, method, &arg_list, &retval);\n \tif (ACPI_FAILURE(status) || retval)\n \t\treturn -EIO;\n@@ -297,6 +298,16 @@ static int acpi_tad_wake_set(struct devi\n \treturn 0;\n }\n \n+static int acpi_tad_wake_set(struct device *dev, char *method, u32 timer_id,\n+\t\t\t     u32 value)\n+{\n+\tPM_RUNTIME_ACQUIRE(dev, pm);\n+\tif (PM_RUNTIME_ACQUIRE_ERR(&pm))\n+\t\treturn -ENXIO;\n+\n+\treturn __acpi_tad_wake_set(dev, method, timer_id, value);\n+}\n+\n static int acpi_tad_wake_write(struct device *dev, const char *buf, char *method,\n \t\t\t       u32 timer_id, const char *specval)\n {\n@@ -317,8 +328,8 @@ static int acpi_tad_wake_write(struct de\n \treturn acpi_tad_wake_set(dev, method, timer_id, value);\n }\n \n-static ssize_t acpi_tad_wake_read(struct device *dev, char *buf, char *method,\n-\t\t\t\t  u32 timer_id, const char *specval)\n+static int __acpi_tad_wake_read(struct device *dev, char *method, u32 timer_id,\n+\t\t\t\tunsigned long long *retval)\n {\n \tacpi_handle handle = ACPI_HANDLE(dev);\n \tunion acpi_object args[] = {\n@@ -328,18 +339,30 @@ static ssize_t acpi_tad_wake_read(struct\n \t\t.pointer = args,\n \t\t.count = ARRAY_SIZE(args),\n \t};\n-\tunsigned long long retval;\n \tacpi_status status;\n \n \targs[0].integer.value = timer_id;\n \n+\tstatus = acpi_evaluate_integer(handle, method, &arg_list, retval);\n+\tif (ACPI_FAILURE(status))\n+\t\treturn -EIO;\n+\n+\treturn 0;\n+}\n+\n+static ssize_t acpi_tad_wake_read(struct device *dev, char *buf, char *method,\n+\t\t\t\t  u32 timer_id, const char *specval)\n+{\n+\tunsigned long long retval;\n+\tint ret;\n+\n \tPM_RUNTIME_ACQUIRE(dev, pm);\n \tif (PM_RUNTIME_ACQUIRE_ERR(&pm))\n \t\treturn -ENXIO;\n \n-\tstatus = acpi_evaluate_integer(handle, method, &arg_list, &retval);\n-\tif (ACPI_FAILURE(status))\n-\t\treturn -EIO;\n+\tret = __acpi_tad_wake_read(dev, method, timer_id, &retval);\n+\tif (ret)\n+\t\treturn ret;\n \n \tif ((u32)retval == ACPI_TAD_WAKE_DISABLED)\n \t\treturn sprintf(buf, \"%s\\n\", specval);\n",
    "prefixes": [
        "v1",
        "1/4"
    ]
}