]> git.itanic.dy.fi Git - linux-stable/commitdiff
i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 12 Sep 2022 13:20:40 +0000 (15:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Sep 2022 09:32:26 +0000 (11:32 +0200)
[ Upstream commit 085aacaa73163f4b8a89dec24ecb32cfacd34017 ]

pm_runtime_get_sync() returning 1 also means the device is powered. So
resetting the chip registers in .remove() is possible and should be
done.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: d98bdd3a5b50 ("i2c: imx: Make sure to unregister adapter on remove()")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-imx.c

index e47fa34656717811f53909e7cd64964992f1cdd7..3082183bd66a490e51b7cdcd5c57ed79d5b9a405 100644 (file)
@@ -1583,7 +1583,7 @@ static int i2c_imx_remove(struct platform_device *pdev)
        if (i2c_imx->dma)
                i2c_imx_dma_free(i2c_imx);
 
-       if (ret == 0) {
+       if (ret >= 0) {
                /* setup chip registers to defaults */
                imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IADR);
                imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IFDR);