From: sashiko-bot@kernel.org
To: "Santhosh Kumar K" <s-k6@ti.com>
Cc: "Miquel Raynal" <miquel.raynal@bootlin.com>,
"Michael Walle" <mwalle@kernel.org>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Takahiro Kuwano" <takahiro.kuwano@infineon.com>,
robh@kernel.org, conor+dt@kernel.org,
"Richard Weinberger" <richard@nod.at>,
"Pratyush Yadav" <pratyush@kernel.org>,
devicetree@vger.kernel.org
Subject: Re: [PATCH v9 12/18] spi: cadence-quadspi: enable PHY for indirect writes
Date: Tue, 25 Aug 2026 17:32:58 +0000 [thread overview]
Message-ID: <20260825173258.DD6791F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260825171737.776052-13-s-k6@ti.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Missing verification of the current operation frequency (`op->max_freq`) against the calibrated PHY frequency, potentially causing the PHY to be incorrectly enabled for uncalibrated writes.
--
commit f08af848763cec6062f2de1a309900c45e4f895a
Author: Santhosh Kumar K <s-k6@ti.com>
spi: cadence-quadspi: enable PHY for indirect writes
This commit enables PHY for indirect writes of at least 1KB, restricting
PHY writes to NAND devices where a write op template was provided. It also
cancels the indirect write before disabling PHY in the error path to avoid
timeouts while the controller is still waiting for AHB data.
> diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c
> index d38a0253e4bda..20ece785c97a4 100644
> --- a/drivers/spi/spi-cadence-quadspi.c
> +++ b/drivers/spi/spi-cadence-quadspi.c
[ ... ]
> @@ -1370,18 +1372,32 @@ static int cqspi_write_setup(struct cqspi_flash_pdata *f_pdata,
>
> static int cqspi_indirect_write_execute(struct cqspi_flash_pdata *f_pdata,
> loff_t to_addr, const u8 *txbuf,
> - const size_t n_tx)
> + const size_t n_tx,
> + u32 post_config_max_speed_hz)
> {
> struct cqspi_st *cqspi = f_pdata->cqspi;
> struct device *dev = &cqspi->pdev->dev;
> void __iomem *reg_base = cqspi->iobase;
> unsigned int remaining = n_tx;
> unsigned int write_bytes;
> + bool use_tuned_phy_write;
> int ret;
>
> if (!refcount_read(&cqspi->refcount))
> return -ENODEV;
>
> + /* Use PHY only for large writes at the calibrated rate */
> + use_tuned_phy_write = n_tx >= CQSPI_PHY_MIN_INDIRECT_WRITE_LEN &&
> + f_pdata->use_tuned_phy &&
> + f_pdata->phy_write_op.max_freq ==
> + post_config_max_speed_hz;
[Severity: High]
Does this logic correctly handle operations where the command-specific speed
limit (op->max_freq) is lower than post_config_max_speed_hz?
If a large indirect write is executed with an op->max_freq less than
post_config_max_speed_hz, the hardware clock will be lowered to op->max_freq.
However, this condition only checks the controller's post-configuration
maximum speed against the calibrated PHY frequency, completely omitting a
check against the actual frequency of the current SPI operation.
Could this lead to the PHY being incorrectly enabled using high-speed DLL
tuning values while operating at a lower clock speed? Applying DLL delay
values calibrated for a high clock speed to a lower clock speed could cause
the PHY data transmission eye to shift, potentially leading to incorrect
sampling and silent data corruption on flash writes.
The read path explicitly validates op->max_freq via cqspi_use_tuned_phy(),
should the write path perform a similar validation before enabling the PHY?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260825171737.776052-1-s-k6@ti.com?part=12
next prev parent reply other threads:[~2026-08-25 17:33 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-25 17:17 [PATCH v9 00/18] spi: cadence-quadspi: add PHY tuning support Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 01/18] spi: dt-bindings: add spi-max-post-config-frequency-hz property Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 02/18] spi: dt-bindings: add spi-phy-pattern-partition property Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 03/18] spi: parse spi-max-post-config-frequency-hz into post_config_max_speed_hz Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:30 ` sashiko-bot
2026-08-25 17:17 ` [PATCH v9 04/18] spi: spi-mem: teach spi_mem_adjust_op_freq() about post-config ops Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:30 ` sashiko-bot
2026-08-25 17:17 ` [PATCH v9 05/18] spi: spi-mem: add execute_tuning callback and spi_mem_execute_tuning() Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 06/18] spi: cadence-quadspi: move cqspi_readdata_capture earlier Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 07/18] spi: cadence-quadspi: add DQS support to read data capture Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:29 ` sashiko-bot
2026-08-25 17:17 ` [PATCH v9 08/18] spi: cadence-quadspi: add PHY tuning support Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:40 ` sashiko-bot
2026-08-26 21:43 ` Mark Brown
2026-08-26 21:43 ` Mark Brown
2026-09-02 9:45 ` Santhosh Kumar K
2026-09-02 9:45 ` Santhosh Kumar K
2026-09-03 8:16 ` Miquel Raynal
2026-09-03 8:16 ` Miquel Raynal
2026-09-08 13:05 ` Santhosh Kumar K
2026-09-08 13:05 ` Santhosh Kumar K
2026-09-08 15:53 ` Miquel Raynal
2026-08-25 17:17 ` [PATCH v9 09/18] spi: cadence-quadspi: skip DDR PHY tuning for 2-byte-address ops (i2383) Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 10/18] spi: cadence-quadspi: refactor direct read path for PHY support Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:31 ` sashiko-bot
2026-08-25 17:17 ` [PATCH v9 11/18] spi: cadence-quadspi: enable PHY for direct reads Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:32 ` sashiko-bot
2026-08-25 17:17 ` [PATCH v9 12/18] spi: cadence-quadspi: enable PHY for indirect writes Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:32 ` sashiko-bot [this message]
2026-08-25 17:17 ` [PATCH v9 13/18] spi: cadence-quadspi: reprogram CS timing on every chip-select switch Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 14/18] spi: cadence-quadspi: reprogram PHY DLL on runtime resume Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:36 ` sashiko-bot
2026-08-25 17:17 ` [PATCH v9 15/18] mtd: spinand: extract variant ranking logic into spinand_op_find_best_variant() Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 16/18] mtd: spinand: negotiate optimal controller operating point before dirmap creation Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:43 ` sashiko-bot
2026-09-04 16:23 ` Miquel Raynal
2026-09-04 16:23 ` Miquel Raynal
2026-09-04 16:25 ` Miquel Raynal
2026-09-04 16:25 ` Miquel Raynal
2026-09-08 13:14 ` Santhosh Kumar K
2026-09-08 13:14 ` Santhosh Kumar K
2026-09-08 15:54 ` Miquel Raynal
2026-09-08 15:54 ` Miquel Raynal
2026-08-25 17:17 ` [PATCH v9 17/18] mtd: spi-nor: extract read op template construction into helper Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:17 ` [PATCH v9 18/18] mtd: spi-nor: run controller optimization before dirmap creation Santhosh Kumar K
2026-08-25 17:17 ` Santhosh Kumar K
2026-08-25 17:45 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260825173258.DD6791F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=miquel.raynal@bootlin.com \
--cc=mwalle@kernel.org \
--cc=pratyush@kernel.org \
--cc=richard@nod.at \
--cc=robh@kernel.org \
--cc=s-k6@ti.com \
--cc=sashiko-reviews@lists.linux.dev \
--cc=takahiro.kuwano@infineon.com \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.