From c727de50597162a9568e682cc1626c87583ae68b Mon Sep 17 00:00:00 2001 From: David Wu Date: Fri, 24 Jul 2020 14:40:55 +0800 Subject: [PATCH] i2c: rk3x: Clean start in rx_only mode In rx only mode, if start is rewritten, a repeat start signal will be generated, which may affect some peripherals. Fixes: 42f500840d1a ("i2c: rk3x: Remove start state and irq") Signed-off-by: David Wu Change-Id: I1bdc6ee669bfcbd60e25abf723596791c59a9231 --- drivers/i2c/busses/i2c-rk3x.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/i2c/busses/i2c-rk3x.c b/drivers/i2c/busses/i2c-rk3x.c index a9df3554d2ff..b8a51e006497 100644 --- a/drivers/i2c/busses/i2c-rk3x.c +++ b/drivers/i2c/busses/i2c-rk3x.c @@ -364,6 +364,8 @@ static void rk3x_i2c_prepare_read(struct rk3x_i2c *i2c) if (i2c->processed != 0) { con &= ~REG_CON_MOD_MASK; con |= REG_CON_MOD(REG_CON_MOD_RX); + if (con & REG_CON_START) + con &= ~REG_CON_START; } i2c_writel(i2c, con, REG_CON);