i2c: qcom-geni: Propagate GENI_ABORT_DONE to geni_i2c_abort_xfer()
authorBjorn Andersson <bjorn.andersson@linaro.org>
Sun, 17 Jul 2022 03:50:26 +0000 (20:50 -0700)
committerWolfram Sang <wsa@kernel.org>
Sun, 24 Jul 2022 05:13:45 +0000 (07:13 +0200)
commit913ee46905ab48e1cae0dbd18de098f572ffa388
treea95669379cd3cd508969ab82059d7a96eb1f250c
parentac720e3e0e072092667b6d62a25611c2427fdb13
i2c: qcom-geni: Propagate GENI_ABORT_DONE to geni_i2c_abort_xfer()

Waiting for M_CMD_ABORT_EN in geni_i2c_abort_xfer() races with the
interrupt handler which will read and clear the abort bit, the result is
that every abort attempt takes 1 second and is followed by a message
about the abort having times out.

Introduce a new state variable to carry the abort_done state from the
interrupt handler back to geni_i2c_abort_xfer(). Also, turn NACK
and TIMEOUT errors into debug messages

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Vinod Koul <vkoul@kernel.org>
[wsa: squashed two patches into one]
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-qcom-geni.c