]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
spi: spi-fsl-dspi: Reset SR flags before sending a new message
authorLarisa Grigore <larisa.grigore@nxp.com>
Thu, 22 May 2025 14:51:32 +0000 (15:51 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2025 12:40:22 +0000 (14:40 +0200)
commit2c29113154f510e25485e8a41ef109f7c223cacf
tree2d908e852bee5a7836300d17e7f811ade779cbcd
parent8bdaffcdd7c6edc46071ace7a392ad2ca2ae4024
spi: spi-fsl-dspi: Reset SR flags before sending a new message

[ Upstream commit 7aba292eb15389073c7f3bd7847e3862dfdf604d ]

If, in a previous transfer, the controller sends more data than expected
by the DSPI target, SR.RFDF (RX FIFO is not empty) will remain asserted.
When flushing the FIFOs at the beginning of a new transfer (writing 1
into MCR.CLR_TXF and MCR.CLR_RXF), SR.RFDF should also be cleared.
Otherwise, when running in target mode with DMA, if SR.RFDF remains
asserted, the DMA callback will be fired before the controller sends any
data.

Take this opportunity to reset all Status Register fields.

Fixes: 5ce3cc567471 ("spi: spi-fsl-dspi: Provide support for DSPI slave mode operation (Vybryd vf610)")
Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Link: https://patch.msgid.link/20250522-james-nxp-spi-v2-3-bea884630cfb@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-fsl-dspi.c