]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
Revert "spi: zynq_qspi: Use dummy buswidth in dummy byte calculation"
authorStefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Thu, 27 Apr 2023 06:53:54 +0000 (08:53 +0200)
committerMichal Simek <michal.simek@amd.com>
Mon, 15 May 2023 07:33:57 +0000 (09:33 +0200)
This reverts commit e09784728689de7949d4cdd559a9590e0bfcc702. The
commit wrongly divides the dummy bytes by dummy bus width to calculate
the dummy bytes. The framework already converts the dummy cycles to the
number of bytes and the controller use the SPI flash command to
determine the dummy cycles via the address width.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230427065355.7413-1-stefan.herbrechtsmeier-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
drivers/spi/zynq_qspi.c

index 00e3ffcd1df1ba11cb7ed958950f9d25d54a5c46..d1d40489665c13e92bc0eb9f91d10d2b72921889 100644 (file)
@@ -676,7 +676,6 @@ static int zynq_qspi_exec_op(struct spi_slave *slave,
                             const struct spi_mem_op *op)
 {
        int op_len, pos = 0, ret, i;
-       u32 dummy_bytes = 0;
        unsigned int flag = 0;
        const u8 *tx_buf = NULL;
        u8 *rx_buf = NULL;
@@ -689,11 +688,6 @@ static int zynq_qspi_exec_op(struct spi_slave *slave,
        }
 
        op_len = op->cmd.nbytes + op->addr.nbytes + op->dummy.nbytes;
-       if (op->dummy.nbytes) {
-               op_len = op->cmd.nbytes + op->addr.nbytes +
-                        op->dummy.nbytes / op->dummy.buswidth;
-               dummy_bytes = op->dummy.nbytes / op->dummy.buswidth;
-       }
 
        u8 op_buf[op_len];
 
@@ -707,8 +701,8 @@ static int zynq_qspi_exec_op(struct spi_slave *slave,
                pos += op->addr.nbytes;
        }
 
-       if (dummy_bytes)
-               memset(op_buf + pos, 0xff, dummy_bytes);
+       if (op->dummy.nbytes)
+               memset(op_buf + pos, 0xff, op->dummy.nbytes);
 
        /* 1st transfer: opcode + address + dummy cycles */
        /* Make sure to set END bit if no tx or rx data messages follow */