Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2218262/?format=api
{ "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" ] }