Commit 6820e812 authored by Tudor Ambarus's avatar Tudor Ambarus Committed by Mark Brown

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: 9326e4f1 ("spi: Limit the spi device max speed to controller's max speed")
Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Suggested-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarTudor Ambarus <tudor.ambarus@microchip.com>
Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20201216092321.413262-1-tudor.ambarus@microchip.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent ede090f5
......@@ -3378,8 +3378,9 @@ int spi_setup(struct spi_device *spi)
if (status)
return status;
if (!spi->max_speed_hz ||
spi->max_speed_hz > spi->controller->max_speed_hz)
if (spi->controller->max_speed_hz &&
(!spi->max_speed_hz ||
spi->max_speed_hz > spi->controller->max_speed_hz))
spi->max_speed_hz = spi->controller->max_speed_hz;
mutex_lock(&spi->controller->io_mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment