diff options
author | Jarkko Nikula <jarkko.nikula@linux.intel.com> | 2015-09-15 16:26:23 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-09-17 18:35:25 +0100 |
commit | 0ed36990a93b23c4873c77cdc1423429e40ed469 (patch) | |
tree | bc22b0ea1c75c184209ea71d75b192d07cd2f811 /drivers/spi/spi-dw.c | |
parent | 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f (diff) |
spi: dw: Remove needless if statements
SPI core validates both bits_per_word and speed_hz transfer parameters and
defaults to spi->bits_per_word and spi->max_speed_hz in case these per
transfer parameters are not set. This allows to remove related if
statements as they evaluate always to true and reduce indentation.
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-dw.c')
-rw-r--r-- | drivers/spi/spi-dw.c | 41 |
1 files changed, 18 insertions, 23 deletions
diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c index 4fbfcdc5cb24..2b5d736465c9 100644 --- a/drivers/spi/spi-dw.c +++ b/drivers/spi/spi-dw.c @@ -309,34 +309,29 @@ static int dw_spi_transfer_one(struct spi_master *master, cr0 = chip->cr0; /* Handle per transfer options for bpw and speed */ - if (transfer->speed_hz) { - speed = chip->speed_hz; + speed = chip->speed_hz; + if ((transfer->speed_hz != speed) || !chip->clk_div) { + speed = transfer->speed_hz; - if ((transfer->speed_hz != speed) || !chip->clk_div) { - speed = transfer->speed_hz; + /* clk_div doesn't support odd number */ + clk_div = (dws->max_freq / speed + 1) & 0xfffe; - /* clk_div doesn't support odd number */ - clk_div = (dws->max_freq / speed + 1) & 0xfffe; + chip->speed_hz = speed; + chip->clk_div = clk_div; - chip->speed_hz = speed; - chip->clk_div = clk_div; - - spi_set_clk(dws, chip->clk_div); - } + spi_set_clk(dws, chip->clk_div); } - if (transfer->bits_per_word) { - if (transfer->bits_per_word == 8) { - dws->n_bytes = 1; - dws->dma_width = 1; - } else if (transfer->bits_per_word == 16) { - dws->n_bytes = 2; - dws->dma_width = 2; - } - cr0 = (transfer->bits_per_word - 1) - | (chip->type << SPI_FRF_OFFSET) - | (spi->mode << SPI_MODE_OFFSET) - | (chip->tmode << SPI_TMOD_OFFSET); + if (transfer->bits_per_word == 8) { + dws->n_bytes = 1; + dws->dma_width = 1; + } else if (transfer->bits_per_word == 16) { + dws->n_bytes = 2; + dws->dma_width = 2; } + cr0 = (transfer->bits_per_word - 1) + | (chip->type << SPI_FRF_OFFSET) + | (spi->mode << SPI_MODE_OFFSET) + | (chip->tmode << SPI_TMOD_OFFSET); /* * Adjust transfer mode if necessary. Requires platform dependent |