i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
authorRussell King <rmk+kernel@armlinux.org.uk>
Wed, 6 May 2020 09:36:38 +0000 (10:36 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2020 15:48:21 +0000 (17:48 +0200)
commit34044514dc596c888fe898d953eef54e37990fab
treefe8e449d8385832cf08ee69b0aa38324dd5072ce
parent6ae31bb65682d2486dc6d481ed2fa986a49987d3
i2c: pxa: clear all master action bits in i2c_pxa_stop_message()

[ Upstream commit e81c979f4e071d516aa27cf5a0c3939da00dc1ca ]

If we timeout during a message transfer, the control register may
contain bits that cause an action to be set. Read-modify-writing the
register leaving these bits set may trigger the hardware to attempt
one of these actions unintentionally.

Always clear these bits when cleaning up after a message or after
a timeout.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-pxa.c