diff --git a/drivers/media/platform/rockchip/isp/capture.c b/drivers/media/platform/rockchip/isp/capture.c index 57bc783df3cb..3f3deb7f2022 100644 --- a/drivers/media/platform/rockchip/isp/capture.c +++ b/drivers/media/platform/rockchip/isp/capture.c @@ -1867,8 +1867,18 @@ static void rkisp_stream_fast(struct work_struct *work) struct rkisp_stream *stream = &cap_dev->stream[0]; struct rkisp_device *ispdev = cap_dev->ispdev; struct v4l2_subdev *sd = ispdev->active_sensor->sd; + int ret; + + if (ispdev->isp_ver != ISP_V30) + return; + + ret = v4l2_pipeline_pm_get(&stream->vnode.vdev.entity); + if (ret < 0) { + dev_err(ispdev->dev, "%s PM get fail:%d\n", __func__, ret); + ispdev->is_thunderboot = false; + return; + } - v4l2_pipeline_pm_get(&stream->vnode.vdev.entity); rkisp_chk_tb_over(ispdev); if (ispdev->tb_head.complete != RKISP_TB_OK) { v4l2_pipeline_pm_put(&stream->vnode.vdev.entity); diff --git a/drivers/media/platform/rockchip/isp/dev.c b/drivers/media/platform/rockchip/isp/dev.c index acebd6cec802..8333ba9aef56 100644 --- a/drivers/media/platform/rockchip/isp/dev.c +++ b/drivers/media/platform/rockchip/isp/dev.c @@ -888,6 +888,7 @@ static int rkisp_plat_probe(struct platform_device *pdev) goto err_unreg_v4l2_dev; } + pm_runtime_enable(dev); /* create & register platefom subdev (from of_node) */ ret = rkisp_register_platform_subdevs(isp_dev); if (ret < 0) @@ -901,8 +902,6 @@ static int rkisp_plat_probe(struct platform_device *pdev) mutex_lock(&rkisp_dev_mutex); list_add_tail(&isp_dev->list, &rkisp_device_list); mutex_unlock(&rkisp_dev_mutex); - - pm_runtime_enable(dev); return 0; err_unreg_media_dev: