Skip to content

Commit 6820e81

Browse files
ambarusbroonie
authored andcommitted
spi: Fix the clamping of spi->max_speed_hz
If spi->controller->max_speed_hz is zero, a non-zero spi->max_speed_hz will be overwritten by zero. Make sure spi->controller->max_speed_hz is not zero when clamping spi->max_speed_hz. Put the spi->controller->max_speed_hz non-zero check higher in the if, so that we avoid a superfluous init to zero when both spi->max_speed_hz and spi->controller->max_speed_hz are zero. Fixes: 9326e4f ("spi: Limit the spi device max speed to controller's max speed") Reported-by: Geert Uytterhoeven <[email protected]> Suggested-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Tudor Ambarus <[email protected]> Tested-by: Geert Uytterhoeven <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent ede090f commit 6820e81

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

drivers/spi/spi.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3378,8 +3378,9 @@ int spi_setup(struct spi_device *spi)
33783378
if (status)
33793379
return status;
33803380

3381-
if (!spi->max_speed_hz ||
3382-
spi->max_speed_hz > spi->controller->max_speed_hz)
3381+
if (spi->controller->max_speed_hz &&
3382+
(!spi->max_speed_hz ||
3383+
spi->max_speed_hz > spi->controller->max_speed_hz))
33833384
spi->max_speed_hz = spi->controller->max_speed_hz;
33843385

33853386
mutex_lock(&spi->controller->io_mutex);

0 commit comments

Comments
 (0)