diff --git a/drivers/media/platform/rockchip/isp/dev.c b/drivers/media/platform/rockchip/isp/dev.c index 01944cc8c88a..5dcb43afd969 100644 --- a/drivers/media/platform/rockchip/isp/dev.c +++ b/drivers/media/platform/rockchip/isp/dev.c @@ -793,7 +793,7 @@ static int __maybe_unused rkisp_runtime_suspend(struct device *dev) if (atomic_dec_return(&isp_dev->hw_dev->power_cnt)) return 0; - return pm_runtime_put(isp_dev->hw_dev->dev); + return pm_runtime_put_sync(isp_dev->hw_dev->dev); } static int __maybe_unused rkisp_runtime_resume(struct device *dev) diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index c81cd9506996..d76e19d8c01d 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -1619,8 +1619,11 @@ static int rkisp_isp_sd_s_power(struct v4l2_subdev *sd, int on) kfifo_reset(&isp_dev->csi_dev.rdbk_kfifo); ret = pm_runtime_get_sync(isp_dev->dev); } else { - ret = pm_runtime_put(isp_dev->dev); + ret = pm_runtime_put_sync(isp_dev->dev); } + + if (ret < 0) + v4l2_err(sd, "%s on:%d failed:%d\n", __func__, on, ret); return ret; } diff --git a/drivers/media/platform/rockchip/ispp/dev.c b/drivers/media/platform/rockchip/ispp/dev.c index 47c197e4145b..79c9eea661ea 100644 --- a/drivers/media/platform/rockchip/ispp/dev.c +++ b/drivers/media/platform/rockchip/ispp/dev.c @@ -305,7 +305,7 @@ static int __maybe_unused rkispp_runtime_suspend(struct device *dev) if (atomic_dec_return(&ispp_dev->hw_dev->power_cnt)) return 0; - return pm_runtime_put(ispp_dev->hw_dev->dev); + return pm_runtime_put_sync(ispp_dev->hw_dev->dev); } static int __maybe_unused rkispp_runtime_resume(struct device *dev) diff --git a/drivers/media/platform/rockchip/ispp/ispp.c b/drivers/media/platform/rockchip/ispp/ispp.c index 38c30b91a628..0f60545728c8 100644 --- a/drivers/media/platform/rockchip/ispp/ispp.c +++ b/drivers/media/platform/rockchip/ispp/ispp.c @@ -351,7 +351,7 @@ static int rkispp_sd_s_power(struct v4l2_subdev *sd, int on) } else { if (ispp_dev->inp == INP_ISP) v4l2_subdev_call(ispp_sdev->remote_sd, core, s_power, 0); - ret = pm_runtime_put(ispp_dev->dev); + ret = pm_runtime_put_sync(ispp_dev->dev); if (ret < 0) v4l2_err(&ispp_dev->v4l2_dev, "%s runtime put failed:%d\n",