Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Jarkko Nikula and committed by
Mark Brown
57b48ab4 6ff33f39

+1 -4
+1 -4
drivers/spi/spi-bfin-sport.c
··· 352 352 transfer = drv_data->cur_transfer; 353 353 chip = drv_data->cur_chip; 354 354 355 - if (transfer->speed_hz) 356 - transfer_speed = bfin_sport_hz_to_spi_baud(transfer->speed_hz); 357 - else 358 - transfer_speed = chip->baud; 355 + transfer_speed = bfin_sport_hz_to_spi_baud(transfer->speed_hz); 359 356 bfin_write(&drv_data->regs->tclkdiv, transfer_speed); 360 357 SSYNC(); 361 358