spi: mvebu: fix baudrate calculation for armada variant
authorUwe Kleine-König <uwe@kleine-koenig.org>
Thu, 8 Dec 2016 16:37:08 +0000 (17:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 15 Jan 2017 12:41:36 +0000 (13:41 +0100)
commita1c81f839c6fbd73592be089106cceab948e6770
tree31ad2818a3302d7f716d65f08de006bfd7d1fe91
parentdfd64d112a020c42e9fb9f42ff0c15dac961e070
spi: mvebu: fix baudrate calculation for armada variant

commit 7243e0b20729d372e97763617a7a9c89f29b33e1 upstream.

The calculation of SPR and SPPR doesn't round correctly at several
places which might result in baud rates that are too big. For example
with tclk_hz = 250000001 and target rate 25000000 it determined a
divider of 10 which is wrong.

Instead of fixing all the corner cases replace the calculation by an
algorithm without a loop which should even be quicker to execute apart
from being correct.

Fixes: df59fa7f4bca ("spi: orion: support armada extended baud rates")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/spi/spi-orion.c