summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-bfin-sport.c
diff options
context:
space:
mode:
authorJarkko Nikula2015-09-15 15:26:16 +0200
committerMark Brown2015-09-16 21:53:45 +0200
commit57b48ab49b7a9ac5ff94402ade2ccb5d63579816 (patch)
tree7d8ce6d632daea49c821010dfebe3bd6932edc8c /drivers/spi/spi-bfin-sport.c
parentLinux 4.3-rc1 (diff)
downloadkernel-qcow2-linux-57b48ab49b7a9ac5ff94402ade2ccb5d63579816.tar.gz
kernel-qcow2-linux-57b48ab49b7a9ac5ff94402ade2ccb5d63579816.tar.xz
kernel-qcow2-linux-57b48ab49b7a9ac5ff94402ade2ccb5d63579816.zip
spi: bfin-sport: Calculate transfer speed unconditionally
SPI core validates the transfer speed and defaults to spi->max_speed_hz in case the transfer speed is not set so code here won't use the chip->baud value (which is derived from spi->max_speed_hz). Please note driver uses chip->baud at the beginning of message transmission by calling the bfin_sport_spi_restore_state() but then programs per transfer speed in bfin_sport_spi_pump_transfers(). I'm not familiar with the HW so I don't know would it be possible to remove chip->baud completely by either using constant value in bfin_sport_spi_restore_state() or by removing the tclkdiv register write there. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-bfin-sport.c')
-rw-r--r--drivers/spi/spi-bfin-sport.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/spi/spi-bfin-sport.c b/drivers/spi/spi-bfin-sport.c
index a78693189f45..6c967555a56a 100644
--- a/drivers/spi/spi-bfin-sport.c
+++ b/drivers/spi/spi-bfin-sport.c
@@ -352,10 +352,7 @@ bfin_sport_spi_pump_transfers(unsigned long data)
transfer = drv_data->cur_transfer;
chip = drv_data->cur_chip;
- if (transfer->speed_hz)
- transfer_speed = bfin_sport_hz_to_spi_baud(transfer->speed_hz);
- else
- transfer_speed = chip->baud;
+ transfer_speed = bfin_sport_hz_to_spi_baud(transfer->speed_hz);
bfin_write(&drv_data->regs->tclkdiv, transfer_speed);
SSYNC();