]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i2c: rcar: clear NO_RXDMA flag after resetting
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 10 Jul 2024 11:03:00 +0000 (13:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Jul 2024 11:21:26 +0000 (13:21 +0200)
[ Upstream commit fea6b5ebb71a2830b042e42de7ae255017ac3ce8 ]

We should allow RXDMA only if the reset was really successful, so clear
the flag after the reset call.

Fixes: 0e864b552b23 ("i2c: rcar: reset controller is mandatory for Gen3+")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-rcar.c

index 0ba88d44a7dbec314d337d4289f10a1ca5dfa878..1d341bd2b4b96d4085322bec37ef29ef1a3cb45b 100644 (file)
@@ -856,10 +856,10 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
 
        /* Gen3+ needs a reset. That also allows RXDMA once */
        if (priv->devtype >= I2C_RCAR_GEN3) {
-               priv->flags &= ~ID_P_NO_RXDMA;
                ret = rcar_i2c_do_reset(priv);
                if (ret)
                        goto out;
+               priv->flags &= ~ID_P_NO_RXDMA;
        }
 
        rcar_i2c_init(priv);