spi: sirf: fix 'cmd_transfer' function typos
authorQipan Li <Qipan.Li@csr.com>
Tue, 2 Sep 2014 09:01:04 +0000 (17:01 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 4 Sep 2014 22:35:58 +0000 (23:35 +0100)
unify 'cmd_transfer' like 'pio_transfer' and 'dma_transfer' as void
function, and also change left_rx_word according to transfer result.

Signed-off-by: Qipan Li <Qipan.Li@csr.com>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-sirf.c

index 44ec3bbbf5a474287ced820e7f57625795ccc28e..d6308e6a9b47acd991ff497f32d8f1e1c47f511e 100644 (file)
@@ -303,7 +303,7 @@ static void spi_sirfsoc_dma_fini_callback(void *data)
        complete(dma_complete);
 }
 
-static int spi_sirfsoc_cmd_transfer(struct spi_device *spi,
+static void spi_sirfsoc_cmd_transfer(struct spi_device *spi,
        struct spi_transfer *t)
 {
        struct sirfsoc_spi *sspi;
@@ -325,10 +325,9 @@ static int spi_sirfsoc_cmd_transfer(struct spi_device *spi,
                sspi->base + SIRFSOC_SPI_TX_RX_EN);
        if (wait_for_completion_timeout(&sspi->tx_done, timeout) == 0) {
                dev_err(&spi->dev, "cmd transfer timeout\n");
-               return 0;
+               return;
        }
-
-       return t->len;
+       sspi->left_rx_word -= t->len;
 }
 
 static void spi_sirfsoc_dma_transfer(struct spi_device *spi,