When a word length of 1 byte is selected and writing data of length
more than QSPI_WLEN_MAX_BYTES, first MAX_BYTES will be transfered
and remaining will be transfered byte by byte. In that case wlen
field should be cleared before setting.

Signed-off-by: Prahlad V <prahlad....@gmail.com>
---
 drivers/spi/spi-ti-qspi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
index 29ea8d2..6c61f54 100644
--- a/drivers/spi/spi-ti-qspi.c
+++ b/drivers/spi/spi-ti-qspi.c
@@ -276,9 +276,9 @@ static int qspi_write_msg(struct ti_qspi *qspi, struct 
spi_transfer *t,
                                cmd |= QSPI_WLEN(QSPI_WLEN_MAX_BITS);
                        } else {
                                writeb(*txbuf, qspi->base + QSPI_SPI_DATA_REG);
-                               cmd = qspi->cmd | QSPI_WR_SNGL;
                                xfer_len = wlen;
-                               cmd |= QSPI_WLEN(wlen);
+                               cmd = ((qspi->cmd & ~QSPI_WLEN_MASK) |
+                                            QSPI_WLEN(wlen));
                        }
                        break;
                case 2:
-- 
2.5.5

Reply via email to