diff --git a/drivers/media/platform/rockchip/isp/dev.c b/drivers/media/platform/rockchip/isp/dev.c index a9c4d086dbfa..a6abe6fc722e 100644 --- a/drivers/media/platform/rockchip/isp/dev.c +++ b/drivers/media/platform/rockchip/isp/dev.c @@ -333,6 +333,12 @@ static int rkisp_pipeline_set_stream(struct rkisp_pipeline *p, bool on) goto err_stream_off; } } else { + if (dev->hw_dev->monitor.is_en) { + dev->hw_dev->monitor.is_en = 0; + dev->hw_dev->monitor.state = ISP_STOP; + if (!completion_done(&dev->hw_dev->monitor.cmpl)) + complete(&dev->hw_dev->monitor.cmpl); + } /* sensor -> phy */ for (i = p->num_subdevs - 1; i >= 0; --i) { if ((dev->vicap_in.merge_num > 1) && diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index 82bb3d09bf1c..8cf86848f339 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -1981,13 +1981,6 @@ static int rkisp_isp_stop(struct rkisp_device *dev) if (atomic_read(&dev->hw_dev->refcnt) > 1) goto end; - - if (dev->hw_dev->monitor.is_en) { - dev->hw_dev->monitor.is_en = 0; - dev->hw_dev->monitor.state = ISP_STOP; - if (!completion_done(&dev->hw_dev->monitor.cmpl)) - complete(&dev->hw_dev->monitor.cmpl); - } /* * ISP(mi) stop in mi frame end -> Stop ISP(mipi) -> * Stop ISP(isp) ->wait for ISP isp off