i2c: xiic: Only ever transfer single message
authorMarek Vasut <marex@denx.de>
Mon, 23 Aug 2021 21:41:44 +0000 (23:41 +0200)
committerWolfram Sang <wsa@kernel.org>
Tue, 14 Sep 2021 10:22:51 +0000 (12:22 +0200)
commitd12e4bbb190b9edb47b31511e624f2a90f35f443
treedd257fc296c711b2a6de899d8edd1c5d8a5a8fb8
parentfdacc3c7405d1fc33c1f2771699a4fc24551e480
i2c: xiic: Only ever transfer single message

Transferring multiple messages via XIIC suffers from strange interaction
between the interrupt status/enable register flags. These flags are being
reused in the hardware to indicate different things for read and write
transfer, and doing multiple transactions becomes horribly complex. Just
send a single transaction and reload the controller with another message
once the transaction is done in the interrupt handler thread.

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