]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()
authorMarek Vasut <marex@denx.de>
Mon, 23 Aug 2021 21:41:42 +0000 (23:41 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jul 2023 06:37:24 +0000 (08:37 +0200)
commit696e470e910e769c59c85e385fa0ded9ab870708
treea430b98074f8015e51e1f8f977109698b9357ab5
parent4989627157735c1f1619f08e5bc1592418e7c878
i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()

[ Upstream commit 743e227a895923c37a333eb2ebf3e391f00c406d ]

The __xiic_start_xfer() manipulates the interrupt flags, xiic_wakeup()
may result in return from xiic_xfer() early. Defer both to the end of
the xiic_process() interrupt thread, so that they are executed after
all the other interrupt bits handling completed and once it completely
safe to perform changes to the interrupt bits in the hardware.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Stable-dep-of: cb6e45c9a0ad ("i2c: xiic: Don't try to handle more interrupt events after error")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-xiic.c