Skip to content

Commit ac8a13f

Browse files
ConchuODgregkh
authored andcommitted
spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback
commit 89e7353 upstream. In commit 1352964 ("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: 1352964 ("spi: microchip-core-qspi: Support per spi-mem operation frequency switches") Signed-off-by: Conor Dooley <conor.dooley@microchip.com> Message-ID: <20250825-during-ploy-939bdd068593@spud> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 18dc528 commit ac8a13f

File tree

1 file changed

+0
-12
lines changed

1 file changed

+0
-12
lines changed

drivers/spi/spi-microchip-core-qspi.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -458,10 +458,6 @@ static int mchp_coreqspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *o
458458

459459
static bool mchp_coreqspi_supports_op(struct spi_mem *mem, const struct spi_mem_op *op)
460460
{
461-
struct mchp_coreqspi *qspi = spi_controller_get_devdata(mem->spi->controller);
462-
unsigned long clk_hz;
463-
u32 baud_rate_val;
464-
465461
if (!spi_mem_default_supports_op(mem, op))
466462
return false;
467463

@@ -484,14 +480,6 @@ static bool mchp_coreqspi_supports_op(struct spi_mem *mem, const struct spi_mem_
484480
return false;
485481
}
486482

487-
clk_hz = clk_get_rate(qspi->clk);
488-
if (!clk_hz)
489-
return false;
490-
491-
baud_rate_val = DIV_ROUND_UP(clk_hz, 2 * op->max_freq);
492-
if (baud_rate_val > MAX_DIVIDER || baud_rate_val < MIN_DIVIDER)
493-
return false;
494-
495483
return true;
496484
}
497485

0 commit comments

Comments
 (0)