i2c: stm32f7: flush TX FIFO upon transfer errors
authorAlain Volmat <alain.volmat@foss.st.com>
Mon, 20 Sep 2021 15:21:29 +0000 (17:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Dec 2021 08:03:23 +0000 (09:03 +0100)
commit8de6ea757c885800baab0bd64316a81a5ccc3aa3
tree62b6cd160ac67ff34c2c78dc96b318303a4fe058
parent1c75779dd90c727d1a7fdb65a330e1f5dd05dbbb
i2c: stm32f7: flush TX FIFO upon transfer errors

commit 0c21d02ca469574d2082379db52d1a27b99eed0c upstream.

While handling an error during transfer (ex: NACK), it could
happen that the driver has already written data into TXDR
before the transfer get stopped.
This commit add TXDR Flush after end of transfer in case of error to
avoid sending a wrong data on any other slave upon next transfer.

Fixes: aeb068c57214 ("i2c: i2c-stm32f7: add driver")
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/i2c/busses/i2c-stm32f7.c