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)
committerWolfram Sang <wsa@kernel.org>
Fri, 16 Sep 2022 19:37:50 +0000 (20:37 +0100)
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>
drivers/i2c/busses/i2c-imx.c

index e47fa34..3082183 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);