spi: stm32: Fix logical error in stm32_spi_prepare_mbr()
authorChristos Gkekas <chris.gekas@gmail.com>
Sun, 10 Sep 2017 13:55:29 +0000 (14:55 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 13 Sep 2017 16:42:27 +0000 (09:42 -0700)
stm32_spi_prepare_mbr() is returning an error value when div is less
than SPI_MBR_DIV_MIN *and* greater than SPI_MBR_DIV_MAX, which always
evaluates to false. This should change to use *or*.

Signed-off-by: Christos Gkekas <chris.gekas@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-stm32.c

index 680cdf549506143d6041736f43552f868e3bf6db..ba9743fa2326d11689384e47c84da4068c9fc521 100644 (file)
@@ -263,8 +263,8 @@ static int stm32_spi_prepare_mbr(struct stm32_spi *spi, u32 speed_hz)
         * no need to check it there.
         * However, we need to ensure the following calculations.
         */
-       if ((div < SPI_MBR_DIV_MIN) &&
-           (div > SPI_MBR_DIV_MAX))
+       if (div < SPI_MBR_DIV_MIN ||
+           div > SPI_MBR_DIV_MAX)
                return -EINVAL;
 
        /* Determine the first power of 2 greater than or equal to div */