From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Santhosh Kumar K <s-k6@ti.com>
Cc: <broonie@kernel.org>, <robh@kernel.org>, <krzk+dt@kernel.org>,
<conor+dt@kernel.org>, <richard@nod.at>, <vigneshr@ti.com>,
<pratyush@kernel.org>, <mwalle@kernel.org>,
<takahiro.kuwano@infineon.com>, <linux-spi@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-mtd@lists.infradead.org>, <praneeth@ti.com>,
<u-kumar1@ti.com>, <a-dutta@ti.com>
Subject: Re: [PATCH v3 04/13] spi: spi-mem: add spi_mem_apply_base_freq_cap()
Date: Fri, 05 Jun 2026 08:15:57 +0200 [thread overview]
Message-ID: <87fr31wm02.fsf@bootlin.com> (raw)
In-Reply-To: <354e81b1-3070-439b-b404-20a2c30bd774@ti.com> (Santhosh Kumar K.'s message of "Thu, 4 Jun 2026 17:40:26 +0530")
Hi Santhosh,
On 04/06/2026 at 17:40:26 +0530, Santhosh Kumar K <s-k6@ti.com> wrote:
> Hello Miquel,
>
> On 28/05/26 14:13, Miquel Raynal wrote:
>> Hi Santhosh,
>>
>>> --- a/drivers/spi/spi-mem.c
>>> +++ b/drivers/spi/spi-mem.c
>>> @@ -398,7 +398,11 @@ int spi_mem_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)
>>> u8 *tmpbuf;
>>> int ret;
>>> - /* Make sure the operation frequency is correct before going
>>> futher */
>>> + /*
>>> + * Ops not configured for maximum speed are limited to the conservative
>>> + * base speed; spi_mem_adjust_op_freq() then caps to the device maximum.
>>> + */
>>> + spi_mem_apply_base_freq_cap(mem, (struct spi_mem_op *)op);
>>> spi_mem_adjust_op_freq(mem, (struct spi_mem_op *)op);
>> There are many more spi_mem_adjust_op_freq() calls in the core where
>> we would
>> not apply the base frequency. Aren't we missing these places? Wouldn't it
>> be more appropriate to call spi_mem_apply_base_freq_cap() at the beginning
>> of spi_mem_adjust_op_freq() ?
>
> Moving spi_mem_apply_base_freq() into spi_mem_adjust_op_freq() would
> affect operation selection.
Yes, and that is precisely what we want.
> spi_mem_adjust_op_freq() is used during variant evaluation through
> spinand_select_op_variant() and spi_mem_calc_op_duration().
And this is a one time specific initialization path. There we need more
logic, probably.
> Applying the
> cap there would cause all candidates to be evaluated at base_speed_hz
> rather than the actual max_speed_hz. As a result, variant selection
> could converge on a different operation than the one that would be
> optimal.
But this is only a single place. Whereas in your implementation you push
the complexity in every place using the spi mem interface, I don't think
this is wise as you will likely end up with many unseen corner cases.
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Santhosh Kumar K <s-k6@ti.com>
Cc: <broonie@kernel.org>, <robh@kernel.org>, <krzk+dt@kernel.org>,
<conor+dt@kernel.org>, <richard@nod.at>, <vigneshr@ti.com>,
<pratyush@kernel.org>, <mwalle@kernel.org>,
<takahiro.kuwano@infineon.com>, <linux-spi@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-mtd@lists.infradead.org>, <praneeth@ti.com>,
<u-kumar1@ti.com>, <a-dutta@ti.com>
Subject: Re: [PATCH v3 04/13] spi: spi-mem: add spi_mem_apply_base_freq_cap()
Date: Fri, 05 Jun 2026 08:15:57 +0200 [thread overview]
Message-ID: <87fr31wm02.fsf@bootlin.com> (raw)
In-Reply-To: <354e81b1-3070-439b-b404-20a2c30bd774@ti.com> (Santhosh Kumar K.'s message of "Thu, 4 Jun 2026 17:40:26 +0530")
Hi Santhosh,
On 04/06/2026 at 17:40:26 +0530, Santhosh Kumar K <s-k6@ti.com> wrote:
> Hello Miquel,
>
> On 28/05/26 14:13, Miquel Raynal wrote:
>> Hi Santhosh,
>>
>>> --- a/drivers/spi/spi-mem.c
>>> +++ b/drivers/spi/spi-mem.c
>>> @@ -398,7 +398,11 @@ int spi_mem_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)
>>> u8 *tmpbuf;
>>> int ret;
>>> - /* Make sure the operation frequency is correct before going
>>> futher */
>>> + /*
>>> + * Ops not configured for maximum speed are limited to the conservative
>>> + * base speed; spi_mem_adjust_op_freq() then caps to the device maximum.
>>> + */
>>> + spi_mem_apply_base_freq_cap(mem, (struct spi_mem_op *)op);
>>> spi_mem_adjust_op_freq(mem, (struct spi_mem_op *)op);
>> There are many more spi_mem_adjust_op_freq() calls in the core where
>> we would
>> not apply the base frequency. Aren't we missing these places? Wouldn't it
>> be more appropriate to call spi_mem_apply_base_freq_cap() at the beginning
>> of spi_mem_adjust_op_freq() ?
>
> Moving spi_mem_apply_base_freq() into spi_mem_adjust_op_freq() would
> affect operation selection.
Yes, and that is precisely what we want.
> spi_mem_adjust_op_freq() is used during variant evaluation through
> spinand_select_op_variant() and spi_mem_calc_op_duration().
And this is a one time specific initialization path. There we need more
logic, probably.
> Applying the
> cap there would cause all candidates to be evaluated at base_speed_hz
> rather than the actual max_speed_hz. As a result, variant selection
> could converge on a different operation than the one that would be
> optimal.
But this is only a single place. Whereas in your implementation you push
the complexity in every place using the spi mem interface, I don't think
this is wise as you will likely end up with many unseen corner cases.
Thanks,
Miquèl
next prev parent reply other threads:[~2026-06-05 6:16 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-27 17:55 [PATCH v3 00/13] spi: cadence-quadspi: add PHY tuning support Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 17:55 ` [PATCH v3 01/13] spi: dt-bindings: allow spi-max-frequency to specify a frequency pair Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:17 ` sashiko-bot
2026-05-28 8:32 ` Miquel Raynal
2026-05-28 8:32 ` Miquel Raynal
2026-05-28 17:36 ` Conor Dooley
2026-05-28 17:36 ` Conor Dooley
2026-05-30 8:54 ` Krzysztof Kozlowski
2026-05-30 8:54 ` Krzysztof Kozlowski
2026-06-01 7:45 ` Santhosh Kumar K
2026-06-01 7:45 ` Santhosh Kumar K
2026-06-02 12:05 ` Miquel Raynal
2026-06-02 12:05 ` Miquel Raynal
2026-06-02 16:18 ` Conor Dooley
2026-06-02 16:18 ` Conor Dooley
2026-06-03 15:54 ` Miquel Raynal
2026-06-03 15:54 ` Miquel Raynal
2026-06-03 16:07 ` Conor Dooley
2026-06-03 16:07 ` Conor Dooley
2026-06-03 16:29 ` Miquel Raynal
2026-06-03 16:29 ` Miquel Raynal
2026-06-03 16:40 ` Conor Dooley
2026-06-03 16:40 ` Conor Dooley
2026-06-04 7:14 ` Miquel Raynal
2026-06-04 7:14 ` Miquel Raynal
2026-06-04 8:36 ` Conor Dooley
2026-06-04 8:36 ` Conor Dooley
2026-06-05 6:32 ` Miquel Raynal
2026-06-05 6:32 ` Miquel Raynal
2026-06-05 7:17 ` Conor Dooley
2026-06-05 7:17 ` Conor Dooley
2026-06-05 7:26 ` Miquel Raynal
2026-06-05 7:26 ` Miquel Raynal
2026-06-05 15:20 ` Conor Dooley
2026-06-05 15:20 ` Conor Dooley
2026-06-05 16:55 ` Miquel Raynal
2026-06-05 16:55 ` Miquel Raynal
2026-05-27 17:55 ` [PATCH v3 02/13] spi: dt-bindings: cdns,qspi-nor: add PHY tuning pattern partition property Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:11 ` sashiko-bot
2026-05-28 8:34 ` Miquel Raynal
2026-05-28 8:34 ` Miquel Raynal
2026-05-30 8:52 ` Krzysztof Kozlowski
2026-05-30 8:52 ` Krzysztof Kozlowski
2026-06-01 8:26 ` Santhosh Kumar K
2026-06-01 8:26 ` Santhosh Kumar K
2026-06-01 11:26 ` Krzysztof Kozlowski
2026-06-01 11:26 ` Krzysztof Kozlowski
2026-06-01 11:47 ` Krzysztof Kozlowski
2026-06-01 11:47 ` Krzysztof Kozlowski
2026-06-02 6:30 ` Santhosh Kumar K
2026-06-02 6:30 ` Santhosh Kumar K
2026-06-02 12:08 ` Krzysztof Kozlowski
2026-06-02 12:08 ` Krzysztof Kozlowski
2026-06-02 12:36 ` Miquel Raynal
2026-06-02 12:36 ` Miquel Raynal
2026-06-02 12:48 ` Krzysztof Kozlowski
2026-06-02 12:48 ` Krzysztof Kozlowski
2026-06-04 12:01 ` Santhosh Kumar K
2026-06-04 12:01 ` Santhosh Kumar K
2026-06-02 16:49 ` Rob Herring
2026-06-02 16:49 ` Rob Herring
2026-06-03 16:01 ` Miquel Raynal
2026-06-03 16:01 ` Miquel Raynal
2026-06-03 17:38 ` Rob Herring
2026-06-03 17:38 ` Rob Herring
2026-06-03 19:00 ` Michael Walle
2026-06-03 19:00 ` Michael Walle
2026-06-04 12:07 ` Santhosh Kumar K
2026-06-04 12:07 ` Santhosh Kumar K
2026-06-04 7:28 ` Miquel Raynal
2026-06-04 7:28 ` Miquel Raynal
2026-06-04 12:04 ` Santhosh Kumar K
2026-06-04 12:04 ` Santhosh Kumar K
2026-05-27 17:55 ` [PATCH v3 03/13] spi: parse two-element spi-max-frequency property Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:19 ` sashiko-bot
2026-05-28 8:37 ` Miquel Raynal
2026-05-28 8:37 ` Miquel Raynal
2026-05-27 17:55 ` [PATCH v3 04/13] spi: spi-mem: add spi_mem_apply_base_freq_cap() Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:32 ` sashiko-bot
2026-05-28 8:43 ` Miquel Raynal
2026-05-28 8:43 ` Miquel Raynal
2026-06-04 12:10 ` Santhosh Kumar K
2026-06-04 12:10 ` Santhosh Kumar K
2026-06-05 6:15 ` Miquel Raynal [this message]
2026-06-05 6:15 ` Miquel Raynal
2026-05-27 17:55 ` [PATCH v3 05/13] spi: spi-mem: add execute_tuning callback and spi_mem_execute_tuning() Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:21 ` sashiko-bot
2026-05-28 8:44 ` Miquel Raynal
2026-05-28 8:44 ` Miquel Raynal
2026-05-27 17:55 ` [PATCH v3 06/13] spi: cadence-quadspi: move cqspi_readdata_capture earlier Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 17:55 ` [PATCH v3 07/13] spi: cadence-quadspi: add DQS support to read data capture Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:17 ` sashiko-bot
2026-05-27 17:55 ` [PATCH v3 08/13] spi: cadence-quadspi: add PHY tuning support Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:44 ` sashiko-bot
2026-05-28 8:54 ` Miquel Raynal
2026-05-28 8:54 ` Miquel Raynal
2026-06-01 8:44 ` Santhosh Kumar K
2026-06-01 8:44 ` Santhosh Kumar K
2026-05-27 17:55 ` [PATCH v3 09/13] spi: cadence-quadspi: reject 2-byte-address DDR ops on PHY-tunable hardware Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-28 9:01 ` Miquel Raynal
2026-05-28 9:01 ` Miquel Raynal
2026-06-01 9:27 ` Santhosh Kumar K
2026-06-01 9:27 ` Santhosh Kumar K
2026-06-02 12:25 ` Miquel Raynal
2026-06-02 12:25 ` Miquel Raynal
2026-05-27 17:55 ` [PATCH v3 10/13] spi: cadence-quadspi: enable PHY for direct reads and indirect writes Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:36 ` sashiko-bot
2026-05-28 9:09 ` Miquel Raynal
2026-05-28 9:09 ` Miquel Raynal
2026-06-01 8:39 ` Santhosh Kumar K
2026-06-01 8:39 ` Santhosh Kumar K
2026-06-02 12:15 ` Miquel Raynal
2026-06-02 12:15 ` Miquel Raynal
2026-05-27 17:55 ` [PATCH v3 11/13] mtd: spinand: run PHY tuning after init and update dirmap frequencies Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 19:04 ` sashiko-bot
2026-05-28 9:27 ` Miquel Raynal
2026-05-28 9:27 ` Miquel Raynal
2026-06-01 9:16 ` Santhosh Kumar K
2026-06-01 9:16 ` Santhosh Kumar K
2026-06-02 12:18 ` Miquel Raynal
2026-06-02 12:18 ` Miquel Raynal
2026-05-27 17:55 ` [PATCH v3 12/13] mtd: spi-nor: extract read op template construction into helper Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 17:55 ` [PATCH v3 13/13] mtd: spi-nor: run PHY tuning after init and update dirmap frequency Santhosh Kumar K
2026-05-27 17:55 ` Santhosh Kumar K
2026-05-27 18:59 ` sashiko-bot
2026-05-28 8:30 ` [PATCH v3 00/13] spi: cadence-quadspi: add PHY tuning support Miquel Raynal
2026-05-28 8:30 ` Miquel Raynal
2026-06-01 8:02 ` Santhosh Kumar K
2026-06-01 8:02 ` Santhosh Kumar K
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=87fr31wm02.fsf@bootlin.com \
--to=miquel.raynal@bootlin.com \
--cc=a-dutta@ti.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=mwalle@kernel.org \
--cc=praneeth@ti.com \
--cc=pratyush@kernel.org \
--cc=richard@nod.at \
--cc=robh@kernel.org \
--cc=s-k6@ti.com \
--cc=takahiro.kuwano@infineon.com \
--cc=u-kumar1@ti.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.