Messages in this thread Patch in this message | | | From | Dinghao Liu <> | Subject | [PATCH] [v3] i2c: imx-lpi2c: Fix runtime PM imbalance on error | Date | Mon, 1 Jun 2020 14:16:40 +0800 |
| |
pm_runtime_get_sync() increments the runtime PM usage counter even the call returns an error code. Thus a corresponding decrement is needed on the error handling path to keep the counter balanced.
Fix this by adding the missed function call.
Fixes: 13d6eb20fc79a ("i2c: imx-lpi2c: add runtime pm support") Co-developed-by: Markus Elfring <Markus.Elfring@web.de> Signed-off-by: Markus Elfring <Markus.Elfring@web.de> Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn> ---
Changelog:
v2: - Use pm_runtime_put_noidle() instead of pm_runtime_put_autosuspend().
v3: - Refine commit message. --- drivers/i2c/busses/i2c-imx-lpi2c.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c index 94743ba581fe..bdee02dff284 100644 --- a/drivers/i2c/busses/i2c-imx-lpi2c.c +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c @@ -260,8 +260,10 @@ static int lpi2c_imx_master_enable(struct lpi2c_imx_struct *lpi2c_imx) int ret; ret = pm_runtime_get_sync(lpi2c_imx->adapter.dev.parent); - if (ret < 0) + if (ret < 0) { + pm_runtime_put_noidle(lpi2c_imx->adapter.dev.parent); return ret; + } temp = MCR_RST; writel(temp, lpi2c_imx->base + LPI2C_MCR); -- 2.17.1
| |