Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2231234/?format=api
{ "id": 2231234, "url": "http://patchwork.ozlabs.org/api/patches/2231234/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/74c8b0830dadc5b7f36c4e2c49a1087a503f7ca1.1777551598.git.michal.simek@amd.com/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<74c8b0830dadc5b7f36c4e2c49a1087a503f7ca1.1777551598.git.michal.simek@amd.com>", "list_archive_url": null, "date": "2026-04-30T12:20:01", "name": "[1/4] reset: Add reset_reset() and reset_reset_bulk() API", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5f6d11702c0b4780d6646e8fdcc09abe53930299", "submitter": { "id": 84271, "url": "http://patchwork.ozlabs.org/api/people/84271/?format=api", "name": "Michal Simek", "email": "michal.simek@amd.com" }, "delegate": { "id": 3651, "url": "http://patchwork.ozlabs.org/api/users/3651/?format=api", "username": "trini", "first_name": "Tom", "last_name": "Rini", "email": "trini@ti.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/74c8b0830dadc5b7f36c4e2c49a1087a503f7ca1.1777551598.git.michal.simek@amd.com/mbox/", "series": [ { "id": 502293, "url": "http://patchwork.ozlabs.org/api/series/502293/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=502293", "date": "2026-04-30T12:20:00", "name": "reset: Introduce reset_reset.*() API", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502293/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2231234/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2231234/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256\n header.s=selector1 header.b=gNc1esHd;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=pass (p=quarantine dis=none) header.from=amd.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=amd.com header.i=@amd.com header.b=\"gNc1esHd\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=quarantine dis=none) header.from=amd.com", "phobos.denx.de;\n spf=fail smtp.mailfrom=michal.simek@amd.com" ], "Received": [ "from phobos.denx.de (phobos.denx.de [85.214.62.61])\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 4g5tbQ3zNrz1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 22:22:25 +1000 (AEST)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 68C858063E;\n\tThu, 30 Apr 2026 14:22:23 +0200 (CEST)", "by phobos.denx.de (Postfix, from userid 109)\n id C827880433; Thu, 30 Apr 2026 14:22:21 +0200 (CEST)", "from MW6PR02CU001.outbound.protection.outlook.com\n (mail-westus2azlp170120002.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c007::2])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 8C3618063E\n for <u-boot@lists.denx.de>; Thu, 30 Apr 2026 14:22:19 +0200 (CEST)", "from MN2PR01CA0025.prod.exchangelabs.com (2603:10b6:208:10c::38) by\n IA0PR12MB7749.namprd12.prod.outlook.com (2603:10b6:208:432::22) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr\n 2026 12:20:32 +0000", "from BN1PEPF00006000.namprd05.prod.outlook.com\n (2603:10b6:208:10c:cafe::ab) by MN2PR01CA0025.outlook.office365.com\n (2603:10b6:208:10c::38) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.30 via Frontend Transport; Thu,\n 30 Apr 2026 12:20:32 +0000", "from satlexmb07.amd.com (165.204.84.17) by\n BN1PEPF00006000.mail.protection.outlook.com (10.167.243.232) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9846.18 via Frontend Transport; Thu, 30 Apr 2026 12:20:32 +0000", "from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com\n (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 30 Apr\n 2026 07:20:23 -0500", "from localhost (10.180.168.240) by satlexmb07.amd.com\n (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17 via Frontend\n Transport; Thu, 30 Apr 2026 07:20:22 -0500" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=ltCDjrluBQjbAZXSB7RnSniCWmfkr0C7HKVybIAarXNoEySC51QALGtB3tKo/mVQYmPbe6RJi63AE1quP1aUttVkyNoGxSEmsTFeAEgdB7/ztO1qxAuxwnbOHEKzi9sdf3BC8GvjFxdeUJvOAA8zhHRuNcuibxl1Luo1+sGbz2GZQNvSPqJo8wKLui4CGV7V8CO1xXR4CtsIkMfBKlJnqb1yH+lSoQKpdjrfVq6oJ/Q7RDi1Vk7DhBOj+XgrFAYTRxYUt/HmpbJ7DWqX9d1pccjASYSqQ83HEQxsgo6+z39gV7xU6yKdOPeh28r3kHSykxI9geR9DR6HCvIiQSLYtA==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=MmZrBMQVvnyH74J7Vra3WoO1jNwaeCsb3ZdbOU6iSgE=;\n b=es457Q9BrTxb6J0oAOCUFZI69Ur/m/Z1qyWF7fbPMOCyf3NlXt9pw9Y1Jd6QohuCsTrshu3y78/pPZ7/a2HAyTO0So5+lAZpu3IGOkx0t9V2tGcYZfIuozBrERrnAy/R5c/h37mzCWaSTwAr6Wi4cbojQAAAmQ/Z+Pb+ArQzBS8oH45cyt7ifsZ+Sfx1C6kTyGNm8A2nLHv923MXuWFgfW2dFTLSeitQPgzm+uR6scNy9bV/IrqyT0QWY3cSCeYX1Y/QPb3ogjutxd98RZlF16RpJ1znEBuDes4cN878e07hc3brpmUlVo2UFWdSE8p6XlNOifgz84IyxS49rOCRWg==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 165.204.84.17) smtp.rcpttodomain=lists.denx.de smtp.mailfrom=amd.com;\n dmarc=pass (p=quarantine sp=quarantine pct=100) action=none\n header.from=amd.com; dkim=none (message not signed); arc=none (0)", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=MmZrBMQVvnyH74J7Vra3WoO1jNwaeCsb3ZdbOU6iSgE=;\n b=gNc1esHdDhX9mgrs6EW72XRhtfrFVOuWD9eFV2L3iakbEIKAZxUVTHK696DfF4L8JkzATa6zlhlZmNM29/DU3tiy2aLUVmTABVATRBbBcZ0wuHTFeoPNopKhuy8kjPMy+NAxTRfAE0PvWH3WW/924ViPIKQrvfzTUoh8jKg7/IM=", "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 165.204.84.17)\n smtp.mailfrom=amd.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=amd.com;", "Received-SPF": "Pass (protection.outlook.com: domain of amd.com designates\n 165.204.84.17 as permitted sender) receiver=protection.outlook.com;\n client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C", "From": "Michal Simek <michal.simek@amd.com>", "To": "<u-boot@lists.denx.de>, <git@amd.com>", "CC": "Tom Rini <trini@konsulko.com>", "Subject": "[PATCH 1/4] reset: Add reset_reset() and reset_reset_bulk() API", "Date": "Thu, 30 Apr 2026 14:20:01 +0200", "Message-ID": "\n <74c8b0830dadc5b7f36c4e2c49a1087a503f7ca1.1777551598.git.michal.simek@amd.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<cover.1777551598.git.michal.simek@amd.com>", "References": "<cover.1777551598.git.michal.simek@amd.com>", "MIME-Version": "1.0", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=4167; i=michal.simek@amd.com;\n h=from:subject:message-id; bh=PDesVJMweFQBcX0lSg2ZEZs0PgNxky0WUPjgYx4UDFM=;\n b=owGbwMvMwCG2mv3fB7+vgl8ZT6slMWR+9vjJ/+e+p4M8z1nD661Fd3+fTb737ZHw88kV02pzo\n xl1k26e7ihlYRDjYJAVU2SZzqTjsObbtaViyyPzYeawMoEMYeDiFICJPO1iZJgieX9LgPmi9EKG\n l1ukreZzSC+Su/Q0MfeLsY9Vsvi272qMDLfFDj/hnvCII3i14r6zT41uZAbem7a/+GTCCyaDMjV\n HB2YA", "X-Developer-Key": "i=michal.simek@amd.com; a=openpgp;\n fpr=67350C9BF5CCEE9B5364356A377C7F21FE3D1F91", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-EOPAttributedMessage": "0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "BN1PEPF00006000:EE_|IA0PR12MB7749:EE_", "X-MS-Office365-Filtering-Correlation-Id": "73dcad3a-7fbf-4ccb-94ae-08dea6b2dfd2", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|1800799024|82310400026|36860700016|376014|22082099003|18002099003|56012099003;", "X-Microsoft-Antispam-Message-Info": "\n 0F5MBa846BxYrDRHvdw90g2b+k172znfuP2gpdLnsRdo8WdGCPEJyi9P2GJTxapGoiGJCRbIiEyZWWKz6slbo5ySTax0osH130Qta8cBvK2pCz7kyNaNL9do96j4zA90YkJxlC8aPeufw6utd9HX64OTMPZ9Vb73o3theajhkmOp5GLfD5eyUdDWieoLlftlrwOMPtGa0WP+U3pHmV8pPJx3WYuuIZf/g3sz1K8oMqqA1qRCXP++xnuYo83Urx97sRl3/gEBA5kD77+YD/lcnwexerr68DNRQJigFwF2EPGRzJJ7vpFBsqcSnw9KhanSWmo9QMEnoawmuUVbAiUQmsJ4PPj21bR5vvwpomaKxa96Z5WmKcqX8AxtkFwjTh3uMxD+KawjDJhnbq09/tQBP4EKzkiW7pFlSi3/CarfXP4BNWyDp34wtjpIOiDotx9JnDlJ/25Frcbq2MqLJ+WEOm1pjNUQ+Y6Zpw5qB6N0MepzAaBS88443mitWVcBYfrYE8ATYnXfBy5ai4lbF0MtnX9Tqo7OWgs9UpT9UwRKhizkgcae6+ljr8yFsTPU7/vxDUHtOgC+7/dOXL6szPzZg5E/lo6jBJQawYParczjs0NnSCtKNfdZkSaU2W0rYmq9aJOeUy/dSQKGRooPSNPvq+mUXBOHi7TUD4Ii7PMlWxKSGpoeUUpPkJhntt1jcVr0Q0EDYlR4S54h8F3kshTDzSZnQGAPsU72klNqm7cmVn2G1A1vq8Lt8+0pG0x/IGbFit03FWSkXIvZrm3jl235lw==", "X-Forefront-Antispam-Report": "CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:satlexmb07.amd.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(22082099003)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n vHbziXNz9HMffPAZuKJB16DWXWChFAs3jY/vgnUPBzf2Uw9KSzi6Nd6YFFobYuWcWykM6xSJGxlm/P4y50N3hNGDCN2H6/nCfiQ9FwwPGcueP+/5JGKXHINSzdY63mphfKHk45bP9pCh3uXFo1r70aeM+4AMUlGkapL5zTBrRicTrDKcN+xmQ3Ahm7Q/ThKTS8XadeUxGDXcg5Y9eHOfeM22ufMvuKfliwJfwt8eDoI4fHdMu24a6W4LDX2O6MZbcAsjfYvAOgRQsxVJ8D4pEACQ6ZgRt9R1nqV04Xysc3C3s+MsRhvAaQpPCX94h6pW5yf9H+hk+UArNOYA/21vkLSZgDfTMqJV1DtVmT4sspS716c7hgGtIDYXT3cgApAqj7eIsO9jLTtq9yTuRU4khCaZjrU02n0VfyOKm2LaPgZSxuHj4B9ZWDqJi9otPJeh", "X-OriginatorOrg": "amd.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "30 Apr 2026 12:20:32.2208 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 73dcad3a-7fbf-4ccb-94ae-08dea6b2dfd2", "X-MS-Exchange-CrossTenant-Id": "3dd8961f-e488-4e60-8e11-a82d994e183d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17];\n Helo=[satlexmb07.amd.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n BN1PEPF00006000.namprd05.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "IA0PR12MB7749", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "Add reset_reset() and reset_reset_bulk() functions to the reset\ncontroller API. These functions assert and then deassert reset signals\nin a single call, providing a convenient way to pulse/toggle a reset\nline.\n\nThis mirrors the Linux kernel's reset_control_reset() and\nreset_control_bulk_reset() APIs. The new functions are useful for\ndrivers that need to cycle a reset line during initialization or\nerror recovery.\n\nSigned-off-by: Michal Simek <michal.simek@amd.com>\n---\n\n drivers/reset/reset-uclass.c | 30 ++++++++++++++++++++++++++++++\n include/reset-uclass.h | 11 +++++++++++\n include/reset.h | 35 +++++++++++++++++++++++++++++++++++\n 3 files changed, 76 insertions(+)", "diff": "diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c\nindex fe4cebf54f15..b26712abc366 100644\n--- a/drivers/reset/reset-uclass.c\n+++ b/drivers/reset/reset-uclass.c\n@@ -225,6 +225,36 @@ int reset_deassert_bulk(struct reset_ctl_bulk *bulk)\n \treturn 0;\n }\n \n+int reset_reset(struct reset_ctl *reset_ctl)\n+{\n+\tstruct reset_ops *ops = reset_dev_ops(reset_ctl->dev);\n+\tint ret;\n+\n+\tdebug(\"%s(reset_ctl=%p)\\n\", __func__, reset_ctl);\n+\n+\tif (ops->rst_reset)\n+\t\treturn ops->rst_reset(reset_ctl);\n+\n+\tret = reset_assert(reset_ctl);\n+\tif (ret < 0)\n+\t\treturn ret;\n+\n+\treturn reset_deassert(reset_ctl);\n+}\n+\n+int reset_reset_bulk(struct reset_ctl_bulk *bulk)\n+{\n+\tint i, ret;\n+\n+\tfor (i = 0; i < bulk->count; i++) {\n+\t\tret = reset_reset(&bulk->resets[i]);\n+\t\tif (ret < 0)\n+\t\t\treturn ret;\n+\t}\n+\n+\treturn 0;\n+}\n+\n int reset_status(struct reset_ctl *reset_ctl)\n {\n \tstruct reset_ops *ops = reset_dev_ops(reset_ctl->dev);\ndiff --git a/include/reset-uclass.h b/include/reset-uclass.h\nindex 9a0696dd1e3b..3ff665c947ea 100644\n--- a/include/reset-uclass.h\n+++ b/include/reset-uclass.h\n@@ -76,6 +76,17 @@ struct reset_ops {\n \t * @return 0 if OK, or a negative error code.\n \t */\n \tint (*rst_deassert)(struct reset_ctl *reset_ctl);\n+\t/**\n+\t * rst_reset - Reset a HW module.\n+\t *\n+\t * This optional function triggers a reset pulse on the reset line,\n+\t * asserting and then deasserting the reset signal. If not implemented,\n+\t * the reset core will use rst_assert followed by rst_deassert.\n+\t *\n+\t * @reset_ctl:\tThe reset signal to pulse.\n+\t * @return 0 if OK, or a negative error code.\n+\t */\n+\tint (*rst_reset)(struct reset_ctl *reset_ctl);\n \t/**\n \t * rst_status - Check reset signal status.\n \t *\ndiff --git a/include/reset.h b/include/reset.h\nindex 036a786d2ace..cd10596825a3 100644\n--- a/include/reset.h\n+++ b/include/reset.h\n@@ -320,6 +320,31 @@ int reset_deassert(struct reset_ctl *reset_ctl);\n */\n int reset_deassert_bulk(struct reset_ctl_bulk *bulk);\n \n+/**\n+ * reset_reset - Reset a HW module by asserting and deasserting a reset signal.\n+ *\n+ * This function will assert and then deassert the specified reset signal,\n+ * thus resetting the affected HW module. This is a convenience function\n+ * that combines reset_assert() and reset_deassert().\n+ *\n+ * @reset_ctl:\tA reset control struct that was previously successfully\n+ *\t\trequested by reset_get_by_*().\n+ * Return: 0 if OK, or a negative error code.\n+ */\n+int reset_reset(struct reset_ctl *reset_ctl);\n+\n+/**\n+ * reset_reset_bulk - Reset all HW modules in a reset control bulk struct.\n+ *\n+ * This function will assert and then deassert all reset signals in the\n+ * specified reset control bulk struct, thus resetting all affected HW modules.\n+ *\n+ * @bulk:\tA reset control bulk struct that was previously successfully\n+ *\t\trequested by reset_get_bulk().\n+ * Return: 0 if OK, or a negative error code.\n+ */\n+int reset_reset_bulk(struct reset_ctl_bulk *bulk);\n+\n /**\n * rst_status - Check reset signal status.\n *\n@@ -443,6 +468,16 @@ static inline int reset_deassert_bulk(struct reset_ctl_bulk *bulk)\n \treturn 0;\n }\n \n+static inline int reset_reset(struct reset_ctl *reset_ctl)\n+{\n+\treturn 0;\n+}\n+\n+static inline int reset_reset_bulk(struct reset_ctl_bulk *bulk)\n+{\n+\treturn 0;\n+}\n+\n static inline int reset_status(struct reset_ctl *reset_ctl)\n {\n \treturn -ENOTSUPP;\n", "prefixes": [ "1/4" ] }