spi: a3700: Clear DATA_OUT when performing a read
[linux-2.6-microblaze.git] / drivers / spi / spi-armada-3700.c
index 77fe55c..4857b01 100644 (file)
@@ -607,6 +607,11 @@ static int a3700_spi_transfer_one(struct spi_master *master,
        a3700_spi_header_set(a3700_spi);
 
        if (xfer->rx_buf) {
+               /* Clear WFIFO, since it's last 2 bytes are shifted out during
+                * a read operation
+                */
+               spireg_write(a3700_spi, A3700_SPI_DATA_OUT_REG, 0);
+
                /* Set read data length */
                spireg_write(a3700_spi, A3700_SPI_IF_DIN_CNT_REG,
                             a3700_spi->buf_len);