]> www.infradead.org Git - nvme.git/commitdiff
spi: stm32: qspi: Fix dual flash mode sanity test in stm32_qspi_setup()
authorPatrice Chotard <patrice.chotard@foss.st.com>
Tue, 18 Jun 2024 13:29:49 +0000 (15:29 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 18 Jun 2024 13:48:25 +0000 (14:48 +0100)
Misplaced parenthesis make test of mode wrong in case mode is equal to
SPI_TX_OCTAL or SPI_RX_OCTAL.

Simplify this sanity test, if one of this bit is set, property
cs-gpio must be present in DT.

Fixes: a557fca630cc ("spi: stm32_qspi: Add transfer_one_message() spi callback")
Cc: stable@vger.kernel.org
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Link: https://msgid.link/r/20240618132951.2743935-2-patrice.chotard@foss.st.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-stm32-qspi.c

index f1e922fd362ab98ba70190024a62859372283eb9..6944e85d836796c07a6ce73376aa49beccc29577 100644 (file)
@@ -653,9 +653,7 @@ static int stm32_qspi_setup(struct spi_device *spi)
                return -EINVAL;
 
        mode = spi->mode & (SPI_TX_OCTAL | SPI_RX_OCTAL);
-       if ((mode == SPI_TX_OCTAL || mode == SPI_RX_OCTAL) ||
-           ((mode == (SPI_TX_OCTAL | SPI_RX_OCTAL)) &&
-           gpiod_count(qspi->dev, "cs") == -ENOENT)) {
+       if (mode && gpiod_count(qspi->dev, "cs") == -ENOENT) {
                dev_err(qspi->dev, "spi-rx-bus-width\\/spi-tx-bus-width\\/cs-gpios\n");
                dev_err(qspi->dev, "configuration not supported\n");
 
@@ -676,10 +674,10 @@ static int stm32_qspi_setup(struct spi_device *spi)
        qspi->cr_reg = CR_APMS | 3 << CR_FTHRES_SHIFT | CR_SSHIFT | CR_EN;
 
        /*
-        * Dual flash mode is only enable in case SPI_TX_OCTAL and SPI_TX_OCTAL
-        * are both set in spi->mode and "cs-gpios" properties is found in DT
+        * Dual flash mode is only enable in case SPI_TX_OCTAL or SPI_RX_OCTAL
+        * is set in spi->mode and "cs-gpios" properties is found in DT
         */
-       if (mode == (SPI_TX_OCTAL | SPI_RX_OCTAL)) {
+       if (mode) {
                qspi->cr_reg |= CR_DFM;
                dev_dbg(qspi->dev, "Dual flash mode enable");
        }