spi: mediatek: use correct mata->xfer_len when in fifo transfer
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>
This commit is contained in:
parent
c63ee2939d
commit
976e944e00
1 changed files with 2 additions and 2 deletions
|
@ -522,11 +522,11 @@ static irqreturn_t mtk_spi_interrupt(int irq, void *dev_id)
|
||||||
mdata->xfer_len = min(MTK_SPI_MAX_FIFO_SIZE, len);
|
mdata->xfer_len = min(MTK_SPI_MAX_FIFO_SIZE, len);
|
||||||
mtk_spi_setup_packet(master);
|
mtk_spi_setup_packet(master);
|
||||||
|
|
||||||
cnt = len / 4;
|
cnt = mdata->xfer_len / 4;
|
||||||
iowrite32_rep(mdata->base + SPI_TX_DATA_REG,
|
iowrite32_rep(mdata->base + SPI_TX_DATA_REG,
|
||||||
trans->tx_buf + mdata->num_xfered, cnt);
|
trans->tx_buf + mdata->num_xfered, cnt);
|
||||||
|
|
||||||
remainder = len % 4;
|
remainder = mdata->xfer_len % 4;
|
||||||
if (remainder > 0) {
|
if (remainder > 0) {
|
||||||
reg_val = 0;
|
reg_val = 0;
|
||||||
memcpy(®_val,
|
memcpy(®_val,
|
||||||
|
|
Loading…
Reference in a new issue