spi: rspi: Do not call rspi_receive_init() for TX-only
authorGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 2 Jun 2014 13:38:04 +0000 (15:38 +0200)
committerMark Brown <broonie@linaro.org>
Mon, 2 Jun 2014 14:49:32 +0000 (15:49 +0100)
Since commit 8449fd76deb9ac67a15a6fb8ead7bb4595d019d2 ("spi: rspi: Merge
rspi_send_pio() and rspi_receive_pio()"), rspi_receive_init() is called
for transmit-only transfers too, while this is not needed.
Only call rspi_receive_init() when receiving, to preserve behavior on
RSPI on SH.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi-rspi.c

index d04a4acce231d436e5476dd5a3d8e2a0bea74bdb..57beda2095996ecb6294f607ba33d5661b6fc961 100644 (file)
@@ -726,13 +726,13 @@ static int rspi_transfer_out_in(struct rspi_data *rspi,
        u8 *rx_buf = xfer->rx_buf;
        u8 spcr, data;
 
-       rspi_receive_init(rspi);
-
        spcr = rspi_read8(rspi, RSPI_SPCR);
-       if (rx_buf)
+       if (rx_buf) {
+               rspi_receive_init(rspi);
                spcr &= ~SPCR_TXMD;
-       else
+       } else {
                spcr |= SPCR_TXMD;
+       }
        rspi_write8(rspi, spcr, RSPI_SPCR);
 
        while (remain > 0) {