]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
spi: spi-fsl-lpspi: Fix scldiv calculation
authorStefan Wahren <wahrenst@gmx.net>
Sun, 4 Aug 2024 11:36:11 +0000 (13:36 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Aug 2024 13:34:23 +0000 (15:34 +0200)
commit5caa28f903358b54a1d7176fe33ebb85271ee151
tree44e56eacf00d88e775f77aea3e670653d4306fa1
parent1e99ea46e180f01ca54ee7d6a4c51580633cda8b
spi: spi-fsl-lpspi: Fix scldiv calculation

[ Upstream commit 730bbfaf7d4890bd99e637db7767dc68cfeb24e7 ]

The effective SPI clock frequency should never exceed speed_hz
otherwise this might result in undefined behavior of the SPI device.

Currently the scldiv calculation could violate this constraint.
For the example parameters perclk_rate = 24 MHz and speed_hz = 7 MHz,
the function fsl_lpspi_set_bitrate will determine perscale = 0 and
scldiv = 1, which is a effective SPI clock of 8 MHz.

So fix this by rounding up the quotient of perclk_rate and speed_hz.
While this never change within the loop, we can pull this out.

Fixes: 5314987de5e5 ("spi: imx: add lpspi bus driver")
Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://patch.msgid.link/20240804113611.83613-1-wahrenst@gmx.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-fsl-lpspi.c