Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/2230409/?format=api
{ "id": 2230409, "url": "http://patchwork.ozlabs.org/api/1.1/covers/2230409/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-aspeed/cover/20260429-winbond-v6-18-rc1-cont-read-v3-0-0f38b3c229ad@bootlin.com/", "project": { "id": 57, "url": "http://patchwork.ozlabs.org/api/1.1/projects/57/?format=api", "name": "Linux ASPEED SoC development", "link_name": "linux-aspeed", "list_id": "linux-aspeed.lists.ozlabs.org", "list_email": "linux-aspeed@lists.ozlabs.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260429-winbond-v6-18-rc1-cont-read-v3-0-0f38b3c229ad@bootlin.com>", "date": "2026-04-29T17:56:37", "name": "[v3,00/11] mtd: spinand: Winbond continuous read support", "submitter": { "id": 73368, "url": "http://patchwork.ozlabs.org/api/1.1/people/73368/?format=api", "name": "Miquel Raynal", "email": "miquel.raynal@bootlin.com" }, "mbox": "http://patchwork.ozlabs.org/project/linux-aspeed/cover/20260429-winbond-v6-18-rc1-cont-read-v3-0-0f38b3c229ad@bootlin.com/mbox/", "series": [ { "id": 502122, "url": "http://patchwork.ozlabs.org/api/1.1/series/502122/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-aspeed/list/?series=502122", "date": "2026-04-29T17:56:39", "name": "mtd: spinand: Winbond continuous read support", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/502122/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2230409/comments/", "headers": { "Return-Path": "\n <linux-aspeed+bounces-3987-incoming=patchwork.ozlabs.org@lists.ozlabs.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-aspeed@lists.ozlabs.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256\n header.s=dkim header.b=Wg4UW4g2;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linux-aspeed+bounces-3987-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)", "lists.ozlabs.org; arc=none smtp.remote-ip=185.246.85.4", "lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=bootlin.com", "lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256\n header.s=dkim header.b=Wg4UW4g2;\n\tdkim-atps=neutral", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=bootlin.com\n (client-ip=185.246.85.4; helo=smtpout-03.galae.net;\n envelope-from=miquel.raynal@bootlin.com; receiver=lists.ozlabs.org)" ], "Received": [ "from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\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 4g5QHW3jBjz1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 04:07:03 +1000 (AEST)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4g5QHS6qMSz2yjp;\n\tThu, 30 Apr 2026 04:07:00 +1000 (AEST)", "from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4g5QHQ0FbBz2ySc;\n\tThu, 30 Apr 2026 04:06:57 +1000 (AEST)", "from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233])\n\tby smtpout-03.galae.net (Postfix) with ESMTPS id 6CDB74E42B57;\n\tWed, 29 Apr 2026 17:57:35 +0000 (UTC)", "from mail.galae.net (mail.galae.net [212.83.136.155])\n\tby smtpout-01.galae.net (Postfix) with ESMTPS id 1FD8C5FD43;\n\tWed, 29 Apr 2026 17:57:35 +0000 (UTC)", "from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon)\n with ESMTPSA id 430B71072B158;\n\tWed, 29 Apr 2026 19:57:20 +0200 (CEST)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1777486020;\n\tcv=none;\n b=hjeeQtgWbhr0WmnIGQaWgDkXmeB8kHoZRWTVeVAAzbcB/OGawKFZJ6aJNLCK8CuT0ovBy/KuD4TlVjteOq8EQe3a9jwtVaq8bQEQNMs13OAi765ZBLv5z7kInuFxTqeNDKlRZLl55dG+bbb6xd5yg/fWlInCfh9lD8XO0Fo+QhlO3F1tXweKpvSTIynIkqTV8TtwiIO2CbLizaopXiNB02THlBsPiV6yo0Cf71ZPWg3+ZfimHDLX23fGzhQiFbTaA3VdLW7b09hRrFx5EC93GkFC0ICxgd0A8gNDO98eXs4fV4AwqBsbU8X50oU8wuf6bh9lIHYxC9AoMBADeAHUQQ==", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1777486020; c=relaxed/relaxed;\n\tbh=0Vum2Qfx5+SoYzasekNBMQ+YiKVnGlZJ3ij44o9Xlgc=;\n\th=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc;\n b=cqxIHn3jQqqNGJUUUVOrzVSsn4YV7wl29PdGBDIfpXKMElP+wC996OfgopUl4e1E9v2NEvNB0vXeDaCeU33PhlSPwbKoC88p7ZAShBlyGW36WDnnP+nOPMbcWUpPjS8xEXvOTZdRRc8kFcc6IVa7w+c8ilWzipFGmlUL++U9ZdRFaO0H8Kqrfm6/ctigHrieUVOF5ZrvSA3DCKVPTcpM58TqKM21dh4hCQeNQ4I9ah7WCr5cNj8DZwHUrL7OopsepfciYtQ5Vcbt38Cq86ga5AY4N2sYS4uESG0Zxdy5GmMqblJso2zMesItapG43DWxnnZKqKyW9Bzrxsl+dquuOA==", "ARC-Authentication-Results": "i=1; lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=bootlin.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256\n header.s=dkim header.b=Wg4UW4g2; dkim-atps=neutral;\n spf=pass (client-ip=185.246.85.4; helo=smtpout-03.galae.net;\n envelope-from=miquel.raynal@bootlin.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=bootlin.com", "X-Greylist": "delayed 556 seconds by postgrey-1.37 at boromir;\n Thu, 30 Apr 2026 04:06:58 AEST", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim;\n\tt=1777485452; h=from:subject:date:message-id:to:cc:mime-version:content-type:\n\t content-transfer-encoding; bh=0Vum2Qfx5+SoYzasekNBMQ+YiKVnGlZJ3ij44o9Xlgc=;\n\tb=Wg4UW4g2WGpQe+FXph6tsBHWFD0BECvRL8NLGhZLbAiM0dLXtALl0yBqIrD+0Lawp02qRd\n\tL/DUtmJwUhFvT/7i6dVkrYjSR0i2aqxl97NpsmKlJePMUStXMKAKuFLrdElmd6uDrZQMrW\n\tDN2MVcdBKW/CmE3V63+VSy0oolOIh9vMJaN/cxw17hZkc97U0ZfuUAPZ4yGanlQWOoatGq\n\tqp6FDwvx+tvn2k6kj4NlTu0PZO5c6zF2pim5Qlv9CB37AYmDKTUNUAVKAIQsbmXwa4RuM/\n\t89ov9iKbcYD//Z7K/Ck/zA6aLDSk0p904Hc5ZMnNQ2ekegrqYQiQ3Q5SeoRwvw==", "From": "Miquel Raynal <miquel.raynal@bootlin.com>", "Subject": "[PATCH v3 00/11] mtd: spinand: Winbond continuous read support", "Date": "Wed, 29 Apr 2026 19:56:37 +0200", "Message-Id": "\n <20260429-winbond-v6-18-rc1-cont-read-v3-0-0f38b3c229ad@bootlin.com>", "X-Mailing-List": "linux-aspeed@lists.ozlabs.org", "List-Id": "<linux-aspeed.lists.ozlabs.org>", "List-Help": "<mailto:linux-aspeed+help@lists.ozlabs.org>", "List-Owner": "<mailto:linux-aspeed+owner@lists.ozlabs.org>", "List-Post": "<mailto:linux-aspeed@lists.ozlabs.org>", "List-Archive": "<https://lore.kernel.org/linux-aspeed/>,\n <https://lists.ozlabs.org/pipermail/linux-aspeed/>", "List-Subscribe": "<mailto:linux-aspeed+subscribe@lists.ozlabs.org>,\n <mailto:linux-aspeed+subscribe-digest@lists.ozlabs.org>,\n <mailto:linux-aspeed+subscribe-nomail@lists.ozlabs.org>", "List-Unsubscribe": "<mailto:linux-aspeed+unsubscribe@lists.ozlabs.org>", "Precedence": "list", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "8bit", "X-B4-Tracking": "v=1; b=H4sIAAAAAAAC/33NSw6CMBSF4a2Qjr2mLy7gyH0YB/ShNNHWtKRqC\n Hu3kDBxwPA/g+9MJNnobCKnaiLRZpdc8CXEoSJ66P3dgjOlCae8ZpxKeDuvgjeQEVgLUTPQwY8\n QbW8AUTYdM0ZxFKQIr2hv7rPql2vpwaUxxO96ltmybm6962YGFChTWrYomG7EWYUwPpw/6vAki\n 5z5piEVHPc1XjSUwtiu6bHt/7R5nn8RUI1yFgEAAA==", "X-Change-ID": "20251204-winbond-v6-18-rc1-cont-read-664791ddb263", "To": "Mark Brown <broonie@kernel.org>, Richard Weinberger <richard@nod.at>,\n Vignesh Raghavendra <vigneshr@ti.com>, Michael Walle <mwalle@kernel.org>,\n Miquel Raynal <miquel.raynal@bootlin.com>,\n Takahiro Kuwano <takahiro.kuwano@infineon.com>,\n Lorenzo Bianconi <lorenzo@kernel.org>, Ray Liu <ray.liu@airoha.com>,\n Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>, =?utf-8?q?C=C3=A9dric_Le_Goa?=\n\t=?utf-8?q?ter?= <clg@kaod.org>, Joel Stanley <joel@jms.id.au>,\n Andrew Jeffery <andrew@codeconstruct.com.au>,\n Avi Fishman <avifishman70@gmail.com>, Tomer Maimon <tmaimon77@gmail.com>,\n Tali Perry <tali.perry1@gmail.com>, Patrick Venture <venture@google.com>,\n Nancy Yuen <yuenn@google.com>, Benjamin Fair <benjaminfair@google.com>,\n Maxime Coquelin <mcoquelin.stm32@gmail.com>,\n Alexandre Torgue <alexandre.torgue@foss.st.com>, =?utf-8?q?Jonathan_Neusch?=\n\t=?utf-8?q?=C3=A4fer?= <j.neuschaefer@gmx.net>", "Cc": "Pratyush Yadav <pratyush@kernel.org>,\n Thomas Petazzoni <thomas.petazzoni@bootlin.com>,\n Steam Lin <STLin2@winbond.com>, Santhosh Kumar K <s-k6@ti.com>,\n linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org,\n linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org,\n linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org,\n linux-stm32@st-md-mailman.stormreply.com", "X-Mailer": "b4 0.14.3", "X-Last-TLS-Session-Version": "TLSv1.3", "X-Spam-Status": "No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,\n\tDKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS autolearn=disabled\n\tversion=4.0.1", "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org" }, "content": "Hello,\n\nTLDR: I dropped v2 from my tree due to build issues with SPI\ncontrollers which I forgot about due to my testing configuration being\nminimal. This is just a respin of the same series, fixing the spi\ncontroller drivers which I initially missed.\n\nSPI NAND continuous read support has already been added a few releases\nago, but only Macronix chips were benefiting from this support. Winbond\nchips also have a continuous read feature, which is slightly more\ncomplex to use in the scope of the Linux kernel, because they these\nchips expect a different read from cache operation once in continuous\nmode.\n\nIn order to be more flexible, this series changes the logic behind\ndirmaps. Direct mappings used to be very static, not flexible. I am\nproposing to change this and turn them in to slightly more dynamic\ninterfaces, where for instance we can:\n- Enable/disable the correction (was previously handled by creating yet\n another pair of direct mappings per target).\n- Select one or another variant for the cache operations.\n\nI propose to name the variants available in a direct mapping \"primary\"\nand \"secondary\", and let the upper layer (SPI NOR or SPI NAND) point to\nthe one that needs to be used for the operation. Controller drivers\nshould not really care about this change, expect the fact that they\nshould not keep a static representation of the template on their\nside. Because of that, I am creating a capability boolean to flag\ndrivers that support this capability (the flag is ignored in the\nnodirmap case).\n\nThis series is now sent as v2 following a former RFC (link below).\n\nHere is a benchmark with the faster Winbond chip I have, W35N02JW on a\nTI AM62a7 LP SK featuring the Cadence QSPI controller, clocked at\n25MHz. Speed gain for a 10-page read is about +32% in octal SDR mode,\n+47% for a 10-page read in octal DTR mode and up to +83% for a entire\nblock read!\n\n 1S-8S-8S, no continuous read:\n\n 64 page read speed is 15058 KiB/s\n\n 1S-8S-8S, with continuous reads:\n\n 1 page read speed is 15058 KiB/s\n 2 page read speed is 15058 KiB/s\n 3 page read speed is 16800 KiB/s\n 4 page read speed is 17066 KiB/s\n 5 page read speed is 18461 KiB/s\n 6 page read speed is 18461 KiB/s\n 7 page read speed is 19384 KiB/s\n 8 page read speed is 19692 KiB/s\n 9 page read speed is 19384 KiB/s\n 10 page read speed is 20000 KiB/s\n 11 page read speed is 20000 KiB/s\n 12 page read speed is 20000 KiB/s\n 13 page read speed is 20800 KiB/s\n 14 page read speed is 20363 KiB/s\n 15 page read speed is 20000 KiB/s\n 16 page read speed is 19692 KiB/s\n 32 page read speed is 19692 KiB/s\n 64 page read speed is 19692 KiB/s\n\n 8D-8D-8D, no continuous read:\n\n 64 page read speed is 23272 KiB/s\n\n 8D-8D-8D, with continuous read:\n\n 1 page read speed is 23272 KiB/s\n 2 page read speed is 23272 KiB/s\n 3 page read speed is 28000 KiB/s\n 4 page read speed is 32000 KiB/s\n 5 page read speed is 34285 KiB/s\n 6 page read speed is 34285 KiB/s\n 7 page read speed is 36000 KiB/s\n 8 page read speed is 36571 KiB/s\n 9 page read speed is 36000 KiB/s\n 10 page read speed is 34285 KiB/s\n 11 page read speed is 36666 KiB/s\n 12 page read speed is 40000 KiB/s\n 13 page read speed is 41600 KiB/s\n 14 page read speed is 37333 KiB/s\n 15 page read speed is 40000 KiB/s\n 16 page read speed is 36571 KiB/s\n 32 page read speed is 42666 KiB/s\n 64 page read speed is 42666 KiB/s\n\nOn the Nuvoton platform, the speed gain is real, even though it is less\nimpressive:\n\n 1 page read speed is 1802 KiB/s\n 2 page read speed is 1882 KiB/s\n 3 page read speed is 1938 KiB/s\n 4 page read speed is 1939 KiB/s\n 5 page read speed is 1935 KiB/s\n 6 page read speed is 1967 KiB/s\n 7 page read speed is 1968 KiB/s\n 8 page read speed is 1969 KiB/s\n 9 page read speed is 1968 KiB/s\n 10 page read speed is 2000 KiB/s\n 11 page read speed is 2000 KiB/s\n 12 page read speed is 2000 KiB/s\n 13 page read speed is 2000 KiB/s\n 14 page read speed is 2000 KiB/s\n 15 page read speed is 2000 KiB/s\n 16 page read speed is 2000 KiB/s\n 32 page read speed is 2000 KiB/s\n 64 page read speed is 2000 KiB/s\n\nThanks!\nMiquèl\n\n---\nChanges in v3:\n- The API change in spi-mem has been applied to all SPI controller drivers\n (fixing build failures on drivers I was not building in my test\n config).\n That is the only change.\n- Link to v2: https://lore.kernel.org/r/20260326-winbond-v6-18-rc1-cont-read-v2-0-643de97a68a3@bootlin.com\n\nChanges in v2:\n- Rebased on v7.0-rc1.\n- Collected tags.\n- I manually tested the integrity of the data by manually disabling all\n possible variants one after the other using a 2 page read scenario. All\n worked except the fastest 8D-8D-8D variant (the first one in the list)\n which triggered the CS deassert issue on the Cadence controller. This\n issue is orthogonal to this patchset, a follow-up series will be sent\n to disable continuous reads on this controller.\n- All continuous read variants for the W25NxxJW chips have been tested\n on the MA35D1 platform (which lead to several fixes) and the\n W35NxxJW chips have been tested on TI AM62a7 LP SK.\n- Several changes have been operated in the core to stabilize the\n feature when a secondary op is used.\n- A couple of helpers have been created to cleanup the winbond.c driver.\n- Link to v1: https://lore.kernel.org/r/20251205-winbond-v6-18-rc1-cont-read-v1-0-01bc48631c73@bootlin.com\n\n---\nMiquel Raynal (11):\n mtd: spinand: Drop a too strong limitation\n mtd: spinand: Expose spinand_op_is_odtr()\n mtd: spinand: Drop ECC dirmaps\n spi: spi-mem: Transform the read operation template\n spi: spi-mem: Create a secondary read operation\n mtd: spinand: Use secondary ops for continuous reads\n mtd: spinand: winbond: Ensure chips are ordered by density\n mtd: spinand: winbond: Add support for continuous reads on W35NxxJW\n mtd: spinand: winbond: Create a helper to write the HS bit\n mtd: spinand: winbond: Create a helper to detect the need for the HS bit\n mtd: spinand: winbond: Add support for continuous reads on W25NxxJW\n\n drivers/mtd/nand/spi/core.c | 135 ++++++++++++------\n drivers/mtd/nand/spi/winbond.c | 317 ++++++++++++++++++++++++++++++++---------\n drivers/mtd/spi-nor/core.c | 22 +--\n drivers/spi/spi-airoha-snfi.c | 6 +-\n drivers/spi/spi-aspeed-smc.c | 4 +-\n drivers/spi/spi-intel.c | 6 +-\n drivers/spi/spi-mem.c | 32 ++++-\n drivers/spi/spi-mxic.c | 18 +--\n drivers/spi/spi-npcm-fiu.c | 16 +--\n drivers/spi/spi-rpc-if.c | 8 +-\n drivers/spi/spi-stm32-ospi.c | 6 +-\n drivers/spi/spi-stm32-qspi.c | 6 +-\n drivers/spi/spi-wpcm-fiu.c | 2 +-\n include/linux/mtd/spinand.h | 16 ++-\n include/linux/spi/spi-mem.h | 8 +-\n 15 files changed, 435 insertions(+), 167 deletions(-)\n---\nbase-commit: 1e0fe839f8c4bade7b9dc358fb8eef5b2f43af49\nchange-id: 20251204-winbond-v6-18-rc1-cont-read-664791ddb263\n\nBest regards," }