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)
committerWolfram Sang <wsa@kernel.org>
Tue, 14 Sep 2021 10:22:46 +0000 (12:22 +0200)
commit743e227a895923c37a333eb2ebf3e391f00c406d
treedff73de7aec7955256ea660faffd79c31e48dbe1
parent861dcffe1b9e986d254ea0d7e9f0a542bfc5ab11
i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()

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>
drivers/i2c/busses/i2c-xiic.c