i2c: designware: call i2c_dw_read_clear_intrbits_slave() once
authorMichael Wu <michael.wu@vatics.com>
Fri, 30 Oct 2020 08:04:19 +0000 (16:04 +0800)
committerWolfram Sang <wsa@kernel.org>
Fri, 6 Nov 2020 15:01:48 +0000 (16:01 +0100)
commit66b92313e2ca9208b5f3ebf5d86e9a818299d8fa
tree02fba180ec7ad409a3e11f0222b578de23bc90f8
parent9890923be3a6d5e606cf4ae4f4e632a5e38cb37c
i2c: designware: call i2c_dw_read_clear_intrbits_slave() once

If some bits were cleared by i2c_dw_read_clear_intrbits_slave() in
i2c_dw_isr_slave() and not handled immediately, those cleared bits would
not be shown again by later i2c_dw_read_clear_intrbits_slave(). They
therefore were forgotten to be handled.

i2c_dw_read_clear_intrbits_slave() should be called once in an ISR and take
its returned state for all later handlings.

Signed-off-by: Michael Wu <michael.wu@vatics.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-designware-slave.c