mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 01:54:00 +00:00
spi: clps711x: Remove duplicate code to set default bits_per_word and max speed
In the implementation of __spi_validate(), spi core will set transfer bits_per_word and max speed as spi device default if it is not set for this transfer. So we can remove the same logic in spi_clps711x_setup_xfer() and spi_clps711x_transfer_one(). Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
fcba212de9
commit
bed890b431
@ -45,17 +45,16 @@ static int spi_clps711x_setup(struct spi_device *spi)
|
|||||||
static void spi_clps711x_setup_xfer(struct spi_device *spi,
|
static void spi_clps711x_setup_xfer(struct spi_device *spi,
|
||||||
struct spi_transfer *xfer)
|
struct spi_transfer *xfer)
|
||||||
{
|
{
|
||||||
u32 speed = xfer->speed_hz ? : spi->max_speed_hz;
|
|
||||||
struct spi_clps711x_data *hw = spi_master_get_devdata(spi->master);
|
struct spi_clps711x_data *hw = spi_master_get_devdata(spi->master);
|
||||||
|
|
||||||
/* Setup SPI frequency divider */
|
/* Setup SPI frequency divider */
|
||||||
if (!speed || (speed >= hw->max_speed_hz))
|
if (!xfer->speed_hz || (xfer->speed_hz >= hw->max_speed_hz))
|
||||||
clps_writel((clps_readl(SYSCON1) & ~SYSCON1_ADCKSEL_MASK) |
|
clps_writel((clps_readl(SYSCON1) & ~SYSCON1_ADCKSEL_MASK) |
|
||||||
SYSCON1_ADCKSEL(3), SYSCON1);
|
SYSCON1_ADCKSEL(3), SYSCON1);
|
||||||
else if (speed >= (hw->max_speed_hz / 2))
|
else if (xfer->speed_hz >= (hw->max_speed_hz / 2))
|
||||||
clps_writel((clps_readl(SYSCON1) & ~SYSCON1_ADCKSEL_MASK) |
|
clps_writel((clps_readl(SYSCON1) & ~SYSCON1_ADCKSEL_MASK) |
|
||||||
SYSCON1_ADCKSEL(2), SYSCON1);
|
SYSCON1_ADCKSEL(2), SYSCON1);
|
||||||
else if (speed >= (hw->max_speed_hz / 8))
|
else if (xfer->speed_hz >= (hw->max_speed_hz / 8))
|
||||||
clps_writel((clps_readl(SYSCON1) & ~SYSCON1_ADCKSEL_MASK) |
|
clps_writel((clps_readl(SYSCON1) & ~SYSCON1_ADCKSEL_MASK) |
|
||||||
SYSCON1_ADCKSEL(1), SYSCON1);
|
SYSCON1_ADCKSEL(1), SYSCON1);
|
||||||
else
|
else
|
||||||
@ -87,7 +86,7 @@ static int spi_clps711x_transfer_one(struct spi_master *master,
|
|||||||
spi_clps711x_setup_xfer(spi, xfer);
|
spi_clps711x_setup_xfer(spi, xfer);
|
||||||
|
|
||||||
hw->len = xfer->len;
|
hw->len = xfer->len;
|
||||||
hw->bpw = xfer->bits_per_word ? : spi->bits_per_word;
|
hw->bpw = xfer->bits_per_word;
|
||||||
hw->tx_buf = (u8 *)xfer->tx_buf;
|
hw->tx_buf = (u8 *)xfer->tx_buf;
|
||||||
hw->rx_buf = (u8 *)xfer->rx_buf;
|
hw->rx_buf = (u8 *)xfer->rx_buf;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user