]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
spi: cadence-qspi: Revert the filtering of certain opcodes in ODTR
authorMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 10 Apr 2026 17:41:01 +0000 (19:41 +0200)
committerMark Brown <broonie@kernel.org>
Sat, 11 Apr 2026 10:53:53 +0000 (11:53 +0100)
I got mislead while analyzing the driver by the fact that the second
opcode byte was in all cases smashed:

        if (op->cmd.dtr)
                opcode = op->cmd.opcode >> 8;
        else
                opcode = op->cmd.opcode;

While at a first glance this doesn't let a chance to the second byte to
be shifted out on the bus, this is actually the second step of an
initialization, where the byte being apparently "ignored" in DTR mode
has already been written in a dedicated "extended opcode" register. As
such, the comment and the extra check that I proposed were entirely
wrong, remove them.

Fixes: bee085476d27 ("spi: cadence-qspi: Make sure we filter out unsupported ops")
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://patch.msgid.link/20260410-winbond-6-19-rc1-oddr-v1-1-2ac4827a3868@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-cadence-quadspi.c

index 2ead419e896e2df18ce07ee0833cf523722db802..b6f7f95e8bd39394e9dc85f84bf5afe25fbc0008 100644 (file)
@@ -1544,10 +1544,6 @@ static bool cqspi_supports_mem_op(struct spi_mem *mem,
                if (op->data.nbytes && op->data.buswidth != 8)
                        return false;
 
-               /* A single opcode is supported, it will be repeated */
-               if ((op->cmd.opcode >> 8) != (op->cmd.opcode & 0xFF))
-                       return false;
-
                if (cqspi->is_rzn1)
                        return false;
        } else if (!all_false) {