mtd: spi-nor-core: Do not set data direction when there is no data
authorPratyush Yadav <p.yadav@ti.com>
Fri, 25 Jun 2021 19:17:15 +0000 (00:47 +0530)
committerJagan Teki <jagan@amarulasolutions.com>
Mon, 28 Jun 2021 06:29:47 +0000 (11:59 +0530)
Even when spi_nor_write_reg() has no data to write, like when executing
a write enable operation, it sets the data direction to
SPI_MEM_DATA_OUT. This trips up spi_mem_check_buswidth() because it
expects a data phase when there is none. Make sure the data direction is
set to SPI_MEM_NO_DATA when there is no data to write.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
drivers/mtd/spi/spi-nor-core.c

index 24c6b8c..d795ecb 100644 (file)
@@ -209,6 +209,9 @@ static int spi_nor_write_reg(struct spi_nor *nor, u8 opcode, u8 *buf, int len)
                                          SPI_MEM_OP_NO_DUMMY,
                                          SPI_MEM_OP_DATA_OUT(len, NULL, 1));
 
+       if (len == 0)
+               op.data.dir = SPI_MEM_NO_DATA;
+
        return spi_nor_read_write_reg(nor, &op, buf);
 }