Skip to content

Commit 0ed3699

Browse files
jhnikulabroonie
authored andcommitted
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 <[email protected]> Signed-off-by: Mark Brown <[email protected]>
1 parent 6ff33f3 commit 0ed3699

File tree

1 file changed

+18
-23
lines changed

1 file changed

+18
-23
lines changed

drivers/spi/spi-dw.c

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -309,34 +309,29 @@ static int dw_spi_transfer_one(struct spi_master *master,
309309
cr0 = chip->cr0;
310310

311311
/* Handle per transfer options for bpw and speed */
312-
if (transfer->speed_hz) {
313-
speed = chip->speed_hz;
312+
speed = chip->speed_hz;
313+
if ((transfer->speed_hz != speed) || !chip->clk_div) {
314+
speed = transfer->speed_hz;
314315

315-
if ((transfer->speed_hz != speed) || !chip->clk_div) {
316-
speed = transfer->speed_hz;
316+
/* clk_div doesn't support odd number */
317+
clk_div = (dws->max_freq / speed + 1) & 0xfffe;
317318

318-
/* clk_div doesn't support odd number */
319-
clk_div = (dws->max_freq / speed + 1) & 0xfffe;
319+
chip->speed_hz = speed;
320+
chip->clk_div = clk_div;
320321

321-
chip->speed_hz = speed;
322-
chip->clk_div = clk_div;
323-
324-
spi_set_clk(dws, chip->clk_div);
325-
}
322+
spi_set_clk(dws, chip->clk_div);
326323
}
327-
if (transfer->bits_per_word) {
328-
if (transfer->bits_per_word == 8) {
329-
dws->n_bytes = 1;
330-
dws->dma_width = 1;
331-
} else if (transfer->bits_per_word == 16) {
332-
dws->n_bytes = 2;
333-
dws->dma_width = 2;
334-
}
335-
cr0 = (transfer->bits_per_word - 1)
336-
| (chip->type << SPI_FRF_OFFSET)
337-
| (spi->mode << SPI_MODE_OFFSET)
338-
| (chip->tmode << SPI_TMOD_OFFSET);
324+
if (transfer->bits_per_word == 8) {
325+
dws->n_bytes = 1;
326+
dws->dma_width = 1;
327+
} else if (transfer->bits_per_word == 16) {
328+
dws->n_bytes = 2;
329+
dws->dma_width = 2;
339330
}
331+
cr0 = (transfer->bits_per_word - 1)
332+
| (chip->type << SPI_FRF_OFFSET)
333+
| (spi->mode << SPI_MODE_OFFSET)
334+
| (chip->tmode << SPI_TMOD_OFFSET);
340335

341336
/*
342337
* Adjust transfer mode if necessary. Requires platform dependent

0 commit comments

Comments
 (0)