[PATCH v1] spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback

Conor Dooley posted 1 patch 1 month, 1 week ago
drivers/spi/spi-microchip-core-qspi.c | 12 ------------
1 file changed, 12 deletions(-)
[PATCH v1] spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback
Posted by Conor Dooley 1 month, 1 week ago
From: Conor Dooley <conor.dooley@microchip.com>

In commit 13529647743d9 ("spi: microchip-core-qspi: Support per spi-mem
operation frequency switches") the logic for checking the viability of
op->max_freq in mchp_coreqspi_setup_clock() was copied into
mchp_coreqspi_supports_op(). Unfortunately, op->max_freq is not valid
when this function is called during probe but is instead zero.
Accordingly, baud_rate_val is calculated to be INT_MAX due to division
by zero, causing probe of the attached memory device to fail.

Seemingly spi-microchip-core-qspi was the only driver that had such a
modification made to its supports_op callback when the per_op_freq
capability was added, so just remove it to restore prior functionality.

CC: stable@vger.kernel.org
Reported-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
Fixes: 13529647743d9 ("spi: microchip-core-qspi: Support per spi-mem operation frequency switches")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
CC: Conor Dooley <conor.dooley@microchip.com>
CC: Daire McNamara <daire.mcnamara@microchip.com>
CC: Mark Brown <broonie@kernel.org>
CC: Miquel Raynal <miquel.raynal@bootlin.com>
CC: linux-spi@vger.kernel.org
CC: linux-kernel@vger.kernel.org
---
 drivers/spi/spi-microchip-core-qspi.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/drivers/spi/spi-microchip-core-qspi.c b/drivers/spi/spi-microchip-core-qspi.c
index d13a9b755c7f8..8dc98b17f77b5 100644
--- a/drivers/spi/spi-microchip-core-qspi.c
+++ b/drivers/spi/spi-microchip-core-qspi.c
@@ -531,10 +531,6 @@ static int mchp_coreqspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *o
 
 static bool mchp_coreqspi_supports_op(struct spi_mem *mem, const struct spi_mem_op *op)
 {
-	struct mchp_coreqspi *qspi = spi_controller_get_devdata(mem->spi->controller);
-	unsigned long clk_hz;
-	u32 baud_rate_val;
-
 	if (!spi_mem_default_supports_op(mem, op))
 		return false;
 
@@ -557,14 +553,6 @@ static bool mchp_coreqspi_supports_op(struct spi_mem *mem, const struct spi_mem_
 			return false;
 	}
 
-	clk_hz = clk_get_rate(qspi->clk);
-	if (!clk_hz)
-		return false;
-
-	baud_rate_val = DIV_ROUND_UP(clk_hz, 2 * op->max_freq);
-	if (baud_rate_val > MAX_DIVIDER || baud_rate_val < MIN_DIVIDER)
-		return false;
-
 	return true;
 }
 
-- 
2.47.2
Re: [PATCH v1] spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback
Posted by Mark Brown 1 month ago
On Mon, 25 Aug 2025 12:53:28 +0100, Conor Dooley wrote:
> In commit 13529647743d9 ("spi: microchip-core-qspi: Support per spi-mem
> operation frequency switches") the logic for checking the viability of
> op->max_freq in mchp_coreqspi_setup_clock() was copied into
> mchp_coreqspi_supports_op(). Unfortunately, op->max_freq is not valid
> when this function is called during probe but is instead zero.
> Accordingly, baud_rate_val is calculated to be INT_MAX due to division
> by zero, causing probe of the attached memory device to fail.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/1] spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback
      commit: 89e7353f522f5cf70cb48c01ce2dcdcb275b8022

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
Re: [PATCH v1] spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback
Posted by Mark Brown 1 month ago
On Mon, 25 Aug 2025 12:53:28 +0100, Conor Dooley wrote:
> In commit 13529647743d9 ("spi: microchip-core-qspi: Support per spi-mem
> operation frequency switches") the logic for checking the viability of
> op->max_freq in mchp_coreqspi_setup_clock() was copied into
> mchp_coreqspi_supports_op(). Unfortunately, op->max_freq is not valid
> when this function is called during probe but is instead zero.
> Accordingly, baud_rate_val is calculated to be INT_MAX due to division
> by zero, causing probe of the attached memory device to fail.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/1] spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback
      commit: 89e7353f522f5cf70cb48c01ce2dcdcb275b8022

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark