return -EINVAL;
/* Determine the first power of 2 greater than or equal to div */
- mbrdiv = (div & (div - 1)) ? fls(div) : fls(div) - 1;
+ if (div & (div - 1))
+ mbrdiv = fls(div);
+ else
+ mbrdiv = fls(div) - 1;
spi->cur_speed = spi->clk_rate / (1 << mbrdiv);
/* data packet should not exceed 1/2 of fifo space */
half_fifo = (spi->fifo_size / 2);
- fthlv = (spi->cur_bpw <= 8) ? half_fifo :
- (spi->cur_bpw <= 16) ? (half_fifo / 2) :
- (half_fifo / 4);
+ if (spi->cur_bpw <= 8)
+ fthlv = half_fifo;
+ else if (spi->cur_bpw <= 16)
+ fthlv = half_fifo / 2;
+ else
+ fthlv = half_fifo / 4;
/* align packet size with data registers access */
if (spi->cur_bpw > 8)
struct stm32_spi *spi = spi_master_get_devdata(master);
dev_dbg(spi->dev, "%s: %s\n", __func__,
- (!!(transfer->len > spi->fifo_size)) ? "true" : "false");
+ (transfer->len > spi->fifo_size) ? "true" : "false");
- return !!(transfer->len > spi->fifo_size);
+ return (transfer->len > spi->fifo_size);
}
/**
* Full-Duplex, need to poll RXP event to know if there are remaining
* data, before disabling SPI.
*/
- mask |= ((spi->rx_buf && !spi->cur_usedma) ? SPI_SR_RXP : 0);
+ if (spi->rx_buf && !spi->cur_usedma)
+ mask |= SPI_SR_RXP;
if (!(sr & mask)) {
dev_dbg(spi->dev, "spurious IT (sr=0x%08x, ier=0x%08x)\n",
enum dma_slave_buswidth buswidth;
u32 maxburst;
- buswidth = (spi->cur_bpw <= 8) ? DMA_SLAVE_BUSWIDTH_1_BYTE :
- (spi->cur_bpw <= 16) ? DMA_SLAVE_BUSWIDTH_2_BYTES :
- DMA_SLAVE_BUSWIDTH_4_BYTES;
+ if (spi->cur_bpw <= 8)
+ buswidth = DMA_SLAVE_BUSWIDTH_1_BYTE;
+ else if (spi->cur_bpw <= 16)
+ buswidth = DMA_SLAVE_BUSWIDTH_2_BYTES;
+ else
+ buswidth = DMA_SLAVE_BUSWIDTH_4_BYTES;
/* Valid for DMA Half or Full Fifo threshold */
- maxburst = (spi->cur_fthlv == 2) ? 1 : spi->cur_fthlv;
+ if (spi->cur_fthlv == 2)
+ maxburst = 1;
+ else
+ maxburst = spi->cur_fthlv;
memset(dma_conf, 0, sizeof(struct dma_slave_config));
dma_conf->direction = dir;
~cfg2_clrb) | cfg2_setb,
spi->base + STM32_SPI_CFG2);
- nb_words = DIV_ROUND_UP(transfer->len * 8,
- (spi->cur_bpw <= 8) ? 8 :
- (spi->cur_bpw <= 16) ? 16 : 32);
+ if (spi->cur_bpw <= 8)
+ nb_words = transfer->len;
+ else if (spi->cur_bpw <= 16)
+ nb_words = DIV_ROUND_UP(transfer->len * 8, 16);
+ else
+ nb_words = DIV_ROUND_UP(transfer->len * 8, 32);
nb_words <<= SPI_CR2_TSIZE_SHIFT;
if (nb_words <= SPI_CR2_TSIZE) {