get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2195524,
    "url": "http://patchwork.ozlabs.org/api/patches/2195524/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-mtd/patch/20260211100553.907585-3-linchengming884@gmail.com/",
    "project": {
        "id": 3,
        "url": "http://patchwork.ozlabs.org/api/projects/3/?format=api",
        "name": "Linux MTD development",
        "link_name": "linux-mtd",
        "list_id": "linux-mtd.lists.infradead.org",
        "list_email": "linux-mtd@lists.infradead.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260211100553.907585-3-linchengming884@gmail.com>",
    "list_archive_url": null,
    "date": "2026-02-11T10:05:52",
    "name": "[v5,2/3] mtd: spi-nand: Add support for randomizer",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "48b998a6dc9b0aa1217bccc7b182a42abcb464a0",
    "submitter": {
        "id": 88631,
        "url": "http://patchwork.ozlabs.org/api/people/88631/?format=api",
        "name": "Cheng Ming Lin",
        "email": "linchengming884@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-mtd/patch/20260211100553.907585-3-linchengming884@gmail.com/mbox/",
    "series": [
        {
            "id": 491809,
            "url": "http://patchwork.ozlabs.org/api/series/491809/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-mtd/list/?series=491809",
            "date": "2026-02-11T10:05:50",
            "name": "mtd: spi-nand: Add support for randomizer feature",
            "version": 5,
            "mbox": "http://patchwork.ozlabs.org/series/491809/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195524/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195524/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.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 secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=sSfKAlNB;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20230601 header.b=YudOdAAj;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f9vHr6QxNz1xxK\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 21:07:36 +1100 (AEDT)",
            "from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1vq780-00000000TaW-2yoE;\n\tWed, 11 Feb 2026 10:07:24 +0000",
            "from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1vq77w-00000000TZ7-2DqS\n\tfor linux-mtd@lists.infradead.org;\n\tWed, 11 Feb 2026 10:07:21 +0000",
            "by mail-pf1-x42b.google.com with SMTP id\n d2e1a72fcca58-81f5381d168so1876317b3a.2\n        for <linux-mtd@lists.infradead.org>;\n Wed, 11 Feb 2026 02:07:19 -0800 (PST)",
            "from twhmp6px (mxsmtp211.mxic.com.tw. [211.75.127.162])\n        by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-8249e7d600dsm1721184b3a.34.2026.02.11.02.07.18\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Wed, 11 Feb 2026 02:07:18 -0800 (PST)",
            "from hqs-appsw-a2o.mp600.macronix.com (unknown [172.17.236.67])\n\tby twhmp6px (Postfix) with ESMTPS id EF2FD4136075;\n\tWed, 11 Feb 2026 18:07:16 +0800 (CST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:\n\tMessage-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=BX1uP1WUNR55C1bQLZF3/5+q84jUbd/P0+RhUg+hRgE=; b=sSfKAlNBO97UNN\n\tG7W9dhwjZBlcnMA1WO/hE40uZ83NfX/YXaxPd1CAadAwkVurvmeS7gvmwlcxL2A8YkdaLa2vKusq3\n\twWKm4su18uDP+Elmzz5ZKKODM8P+p8O8hivMI3hiMrDLi9TYd4niKfgUHW8K3VskaxSHpWUOREAll\n\tjhDz74k49Whg+o1CWuylcQgK3Cd7D3OaBZtuRv80+QK/UAzXNzmYwgCEYZWAKWY7y/TdVgWDN+yMh\n\tfjCa5gnI27a/hf/J8Xw+lCW99LhIuRUuIxBToHFuAxuoqBLT1/9qHPQCvX1DRCGiRBW37kGQC1WTh\n\t1SkdoXYzivo3ld5cPNxA==;",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20230601; t=1770804439; x=1771409239;\n darn=lists.infradead.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=Vez69047uDXOuQc71G6ik4HtqOr3/TvZvcnrZ5g7CFU=;\n        b=YudOdAAjaTlTX8+WIkOOkIBwJSWOjOVfoMnzFQoby37hsqIKTTQxSKa1CuDmWiIqoI\n         IMDHy2P/MzBvJZooA5w2uaDgw1wWh6QQ3jdbRGI5XsyewxVXrh46zi8n8HaFo9PAb4zF\n         Kkrt9aLB438cORpyUiJIGcwwqz7ZZ4JOCdZ9m4AK5ePSjNIzdBzdMiS815k21XBLIx0o\n         E0ba3jHe7NsAhB7pHebifUyUDfks3KiaEo1xjioY4el4cgEXa1teiMu/TRHTevfMQNzI\n         cSKaYUY6LUVf74BXcnxfunTf74xviowuM4wNMRzfmr7nDH2kihhoJm/rZ37flr9L8DT5\n         Fb9A=="
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20230601; t=1770804439; x=1771409239;\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=Vez69047uDXOuQc71G6ik4HtqOr3/TvZvcnrZ5g7CFU=;\n        b=ha+bRhS049UB13uHnPFbletzzci86LrDBbn5pzPiqoK08B3YqdcGpWxrJX8uNllLjx\n         lQV0MdG28Ip6UeAvgF2KfBMNMapUMsbXWYVfVdipZbwevspl5zGH8rfS+u9qH54lt0Sd\n         bHU5fFjwU387e0yEHdTssooDIZDZuLDea+gTz7AsMILB++cSi1OqWTmON0a8NWgUwApD\n         9OyzRZsSbRRY3at6UT2mmOSQ9asnAd1DNXQOXT1+YZoxcUZkMUQDbjCEGN5tYuPuYu5o\n         GG86IowOgE4/cPFwIzE2sN6iBKwXM9scxSoB4D42TMsJyYtx4TPRSOVjXB56XuV4n4kF\n         6gUQ==",
        "X-Forwarded-Encrypted": "i=1;\n AJvYcCWEqXGKCs/18lhk0+YgwwasPxRE/AtthxF9+XHLm6XcU19JQkYVWF1U1GXPdYM0U9A14FIv8Pbto28=@lists.infradead.org",
        "X-Gm-Message-State": "AOJu0YxtKjzZv5hDlDkILy2XfqkLtKmozR874BemeInKHwxH7cWLfuem\n\thQO7AZlDKUFaaCTfmiXaU4i0rRpe3IYiFPc7QiwBwEZrj/ZaxwF6+27t",
        "X-Gm-Gg": "AZuq6aLBDQRNxS5C3Jo/qpDubWIzbG4AahSgVSUc+NpxKdNx98scHurqJ1+JW6u0BH4\n\tTxBqFHefXkSThINKEmN3RkASIwli1qVQEwzFU/HrbL5RLAHgdtjqHLHRqgm+t82VAq8twRl8st3\n\tw3cC2o6DK0B1BZ98T5plEvTwFtzl6XNA7/FClEWIBlyZD+RZ4xOnX/P/hYmP3NZGLUOKio1w2XF\n\t98OW7DO3pvdR3DYwzvO0i6ZpM4DdzNpI0YkWJtjjW4tYpiit09mmsGX1Y4+QN3R8ojWHxpEWAsk\n\t++pLmqLVofyF7/REdGA9xqjG5hM1dr8HzwGV7nsdT8X78T+ExnQazZ33PtEyKChepPtzwxrcJjp\n\tGoYe1sqWNWzqGhTKNSwZDu7xTcqko8AdDH3lzqZI1iTlE9UOWPnlUOhlK2lnlhGNRaCq2zlajkH\n\tWM5NnvNj8jSZ1QZWTO1ay9kxjw6gie/gAyPfC8PEhzmKlEkg==",
        "X-Received": "by 2002:a05:6a00:6b93:20b0:824:936a:46bb with SMTP id\n d2e1a72fcca58-824936a55c2mr2508812b3a.20.1770804438987;\n        Wed, 11 Feb 2026 02:07:18 -0800 (PST)",
        "From": "Cheng Ming Lin <linchengming884@gmail.com>",
        "To": "Miquel Raynal <miquel.raynal@bootlin.com>,\n\tRichard Weinberger <richard@nod.at>,\n\tVignesh Raghavendra <vigneshr@ti.com>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>",
        "Cc": "Tudor Ambarus <tudor.ambarus@linaro.org>,\n\tMikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>,\n\tPablo Martin-Gomez <pmartin-gomez@freebox.fr>,\n\tTianling Shen <cnsztl@gmail.com>,\n\tPratyush Yadav <pratyush@kernel.org>,\n\tlinux-mtd@lists.infradead.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\talvinzhou@mxic.com.tw,\n\tCheng Ming Lin <chengminglin@mxic.com.tw>",
        "Subject": "[PATCH v5 2/3] mtd: spi-nand: Add support for randomizer",
        "Date": "Wed, 11 Feb 2026 18:05:52 +0800",
        "Message-Id": "<20260211100553.907585-3-linchengming884@gmail.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20260211100553.907585-1-linchengming884@gmail.com>",
        "References": "<20260211100553.907585-1-linchengming884@gmail.com>",
        "MIME-Version": "1.0",
        "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ",
        "X-CRM114-CacheID": "sfid-20260211_020720_579869_D3E59147 ",
        "X-CRM114-Status": "GOOD (  17.21  )",
        "X-Spam-Score": "-1.8 (-)",
        "X-Spam-Report": "Spam detection software,\n running on the system \"bombadil.infradead.org\",\n has NOT identified this incoming email as spam.  The original\n message has been attached to this so you can view it or label\n similar future email.  If you have any questions, see\n the administrator of that system for details.\n Content preview:  From: Cheng Ming Lin This patch adds support for the\n randomizer\n    feature. It introduces a 'set_randomizer' callback in 'struct\n spinand_info'\n    and 'struct spinand_device'.\n Content analysis details:   (-1.8 points, 5.0 required)\n  pts rule name              description\n ---- ----------------------\n --------------------------------------------------\n  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record\n -0.0 SPF_PASS               SPF: sender matches SPF record\n -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from\n author's\n                             domain\n -0.1 DKIM_VALID             Message has at least one valid DKIM or DK\n signature\n  0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n not necessarily valid\n -0.1 DKIM_VALID_EF          Message has a valid DKIM or DK signature from\n                             envelope-from domain\n -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n                             [score: 0.0000]\n  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail\n provider\n                             [linchengming884(at)gmail.com]\n  0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in\n                             digit\n                             [linchengming884(at)gmail.com]\n -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/, no\n                             trust\n                             [2607:f8b0:4864:20:0:0:0:42b listed in]\n                             [list.dnswl.org]",
        "X-BeenThere": "linux-mtd@lists.infradead.org",
        "X-Mailman-Version": "2.1.34",
        "Precedence": "list",
        "List-Id": "Linux MTD discussion mailing list <linux-mtd.lists.infradead.org>",
        "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.infradead.org/pipermail/linux-mtd/>",
        "List-Post": "<mailto:linux-mtd@lists.infradead.org>",
        "List-Help": "<mailto:linux-mtd-request@lists.infradead.org?subject=help>",
        "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Sender": "\"linux-mtd\" <linux-mtd-bounces@lists.infradead.org>",
        "Errors-To": "linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org"
    },
    "content": "From: Cheng Ming Lin <chengminglin@mxic.com.tw>\n\nThis patch adds support for the randomizer feature.\n\nIt introduces a 'set_randomizer' callback in 'struct spinand_info' and\n'struct spinand_device'.\n\nIf a driver implements this callback, the core will invoke it during\ndevice initialization (spinand_init) to enable or disable the randomizer\nfeature based on the device tree configuration.\n\nSigned-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw>\n---\n drivers/mtd/nand/spi/core.c | 27 +++++++++++++++++++++++++++\n include/linux/mtd/spinand.h |  9 +++++++++\n 2 files changed, 36 insertions(+)",
    "diff": "diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c\nindex d207286572d8..d6b12d05c346 100644\n--- a/drivers/mtd/nand/spi/core.c\n+++ b/drivers/mtd/nand/spi/core.c\n@@ -1218,6 +1218,29 @@ static int spinand_create_dirmaps(struct spinand_device *spinand)\n \treturn 0;\n }\n \n+static int spinand_randomizer_init(struct spinand_device *spinand)\n+{\n+\tstruct device_node *np = spinand->spimem->spi->dev.of_node;\n+\tbool enable = false;\n+\tint ret;\n+\n+\tif (!spinand->set_randomizer)\n+\t\treturn 0;\n+\n+\tif (of_property_read_bool(np, \"nand-enable-randomizer\"))\n+\t\tenable = true;\n+\telse if (of_property_read_bool(np, \"nand-disable-randomizer\"))\n+\t\tenable = false;\n+\telse\n+\t\treturn 0;\n+\n+\tret = spinand->set_randomizer(spinand, enable);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\treturn 0;\n+}\n+\n static const struct nand_ops spinand_ops = {\n \t.erase = spinand_erase,\n \t.markbad = spinand_markbad,\n@@ -1412,6 +1435,7 @@ int spinand_match_and_init(struct spinand_device *spinand,\n \t\tspinand->user_otp = &table[i].user_otp;\n \t\tspinand->read_retries = table[i].read_retries;\n \t\tspinand->set_read_retry = table[i].set_read_retry;\n+\t\tspinand->set_randomizer = table[i].set_randomizer;\n \n \t\top = spinand_select_op_variant(spinand,\n \t\t\t\t\t       info->op_variants.read_cache);\n@@ -1588,6 +1612,9 @@ static int spinand_init(struct spinand_device *spinand)\n \t * ECC initialization must have happened previously.\n \t */\n \tspinand_cont_read_init(spinand);\n+\tret = spinand_randomizer_init(spinand);\n+\tif (ret)\n+\t\tgoto err_cleanup_nanddev;\n \n \tmtd->_read_oob = spinand_mtd_read;\n \tmtd->_write_oob = spinand_mtd_write;\ndiff --git a/include/linux/mtd/spinand.h b/include/linux/mtd/spinand.h\nindex ce76f5c632e1..e01315a71222 100644\n--- a/include/linux/mtd/spinand.h\n+++ b/include/linux/mtd/spinand.h\n@@ -501,6 +501,7 @@ struct spinand_user_otp {\n  * @user_otp: SPI NAND user OTP info.\n  * @read_retries: the number of read retry modes supported\n  * @set_read_retry: enable/disable read retry for data recovery\n+ * @set_randomizer: enable/disable randomizer support\n  *\n  * Each SPI NAND manufacturer driver should have a spinand_info table\n  * describing all the chips supported by the driver.\n@@ -527,6 +528,8 @@ struct spinand_info {\n \tunsigned int read_retries;\n \tint (*set_read_retry)(struct spinand_device *spinand,\n \t\t\t     unsigned int read_retry);\n+\tint (*set_randomizer)(struct spinand_device *spinand,\n+\t\t\t      bool enable);\n };\n \n #define SPINAND_ID(__method, ...)\t\t\t\t\t\\\n@@ -580,6 +583,9 @@ struct spinand_info {\n \t.read_retries = __read_retries,\t\t\t\t\t\\\n \t.set_read_retry = __set_read_retry\n \n+#define SPINAND_RANDOMIZER(__set_randomizer)\t\t\t\t\\\n+\t.set_randomizer = __set_randomizer\n+\n #define SPINAND_INFO(__model, __id, __memorg, __eccreq, __op_variants,\t\\\n \t\t     __flags, ...)\t\t\t\t\t\\\n \t{\t\t\t\t\t\t\t\t\\\n@@ -635,6 +641,7 @@ struct spinand_dirmap {\n  * @user_otp: SPI NAND user OTP info.\n  * @read_retries: the number of read retry modes supported\n  * @set_read_retry: Enable/disable the read retry feature\n+ * @set_randomizer: Enable/disable the randomizer feature\n  */\n struct spinand_device {\n \tstruct nand_device base;\n@@ -668,6 +675,8 @@ struct spinand_device {\n \tbool cont_read_possible;\n \tint (*set_cont_read)(struct spinand_device *spinand,\n \t\t\t     bool enable);\n+\tint (*set_randomizer)(struct spinand_device *spinand,\n+\t\t\t      bool enable);\n \n \tconst struct spinand_fact_otp *fact_otp;\n \tconst struct spinand_user_otp *user_otp;\n",
    "prefixes": [
        "v5",
        "2/3"
    ]
}