| From a4d8f64f7267a88d4688f5c216926f5f6cafbae6 Mon Sep 17 00:00:00 2001 |
| From: Leilk Liu <leilk.liu@mediatek.com> |
| Date: Wed, 31 Oct 2018 16:49:16 +0800 |
| Subject: spi: mediatek: use correct mata->xfer_len when in fifo transfer |
| |
| From: Leilk Liu <leilk.liu@mediatek.com> |
| |
| commit a4d8f64f7267a88d4688f5c216926f5f6cafbae6 upstream. |
| |
| when xfer_len is greater than 64 bytes and use fifo mode |
| to transfer, the actual length from the third time is mata->xfer_len |
| but not len in mtk_spi_interrupt(). |
| |
| Signed-off-by: Leilk Liu <leilk.liu@mediatek.com> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Cc: Guenter Roeck <linux@roeck-us.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/spi/spi-mt65xx.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/spi/spi-mt65xx.c |
| +++ b/drivers/spi/spi-mt65xx.c |
| @@ -522,11 +522,11 @@ static irqreturn_t mtk_spi_interrupt(int |
| mdata->xfer_len = min(MTK_SPI_MAX_FIFO_SIZE, len); |
| mtk_spi_setup_packet(master); |
| |
| - cnt = len / 4; |
| + cnt = mdata->xfer_len / 4; |
| iowrite32_rep(mdata->base + SPI_TX_DATA_REG, |
| trans->tx_buf + mdata->num_xfered, cnt); |
| |
| - remainder = len % 4; |
| + remainder = mdata->xfer_len % 4; |
| if (remainder > 0) { |
| reg_val = 0; |
| memcpy(®_val, |