spi: fsl-lpspi: remove unneeded array
authorOleksandr Suvorov <oleksandr.suvorov@toradex.com>
Thu, 20 Feb 2020 14:11:48 +0000 (14:11 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 3 Mar 2020 14:47:18 +0000 (14:47 +0000)
- replace the array with the shift operation
- remove the extra comparing operation.

Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Link: https://lore.kernel.org/r/20200220141143.3902922-2-oleksandr.suvorov@toradex.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-fsl-lpspi.c

index d0b8cc7..298329b 100644 (file)
@@ -86,8 +86,6 @@
 #define TCR_RXMSK      BIT(19)
 #define TCR_TXMSK      BIT(18)
 
-static int clkdivs[] = {1, 2, 4, 8, 16, 32, 64, 128};
-
 struct lpspi_config {
        u8 bpw;
        u8 chip_select;
@@ -331,15 +329,14 @@ static int fsl_lpspi_set_bitrate(struct fsl_lpspi_data *fsl_lpspi)
        }
 
        for (prescale = 0; prescale < 8; prescale++) {
-               scldiv = perclk_rate /
-                        (clkdivs[prescale] * config.speed_hz) - 2;
+               scldiv = perclk_rate / config.speed_hz / (1 << prescale) - 2;
                if (scldiv < 256) {
                        fsl_lpspi->config.prescale = prescale;
                        break;
                }
        }
 
-       if (prescale == 8 && scldiv >= 256)
+       if (scldiv >= 256)
                return -EINVAL;
 
        writel(scldiv | (scldiv << 8) | ((scldiv >> 1) << 16),