spi: mediatek: Don't modify spi_transfer when transfer.
authorPeter Shih <pihsun@chromium.org>
Mon, 10 Sep 2018 03:54:21 +0000 (11:54 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Nov 2019 17:00:08 +0000 (18:00 +0100)
commit338856a48f39eba8518893fb0b3ea3f69bb19315
treeb83628ceddbbcbdc540bc3c3f42b985d23cd206c
parent45503ce9086cabc9b3faaaed4563b2da8af1ffe2
spi: mediatek: Don't modify spi_transfer when transfer.

[ Upstream commit 00bca73bfca4fb0ab089b94cad0fc83d8b49c25f ]

Mediatek SPI driver modifies some fields (tx_buf, rx_buf, len, tx_dma,
rx_dma) of the spi_transfer* passed in when doing transfer_one and in
interrupt handler. This is somewhat unexpected, and there are some
caller (e.g. Cr50 spi driver) that reuse the spi_transfer for multiple
messages. Add a field to record how many bytes have been transferred,
and calculate the right len / buffer based on it instead.

Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
Change-Id: I23e218cd964f16c0b2b26127d4a5ca6529867673
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-mt65xx.c