diff --git a/drivers/media/platform/rk-isp10/cif_isp10.c b/drivers/media/platform/rk-isp10/cif_isp10.c index c7b508c7c9b6..1363547accfd 100644 --- a/drivers/media/platform/rk-isp10/cif_isp10.c +++ b/drivers/media/platform/rk-isp10/cif_isp10.c @@ -21,6 +21,8 @@ #include "cif_isp10.h" #include #include +#include +#include static int cif_isp10_mipi_isr( unsigned int mis, @@ -5712,9 +5714,13 @@ int cif_isp10_streamon( if (IS_ERR_VALUE(ret)) goto err; + rockchip_set_system_status(SYS_STATUS_ISP); + ret = cif_isp10_start(dev, streamon_sp, streamon_mp); - if (IS_ERR_VALUE(ret)) + if (IS_ERR_VALUE(ret)) { + rockchip_clear_system_status(SYS_STATUS_ISP); goto err; + } cif_isp10_pltfrm_pr_dbg(dev->dev, "SP state = %s, MP state = %s, DMA state = %s\n", @@ -5798,6 +5804,8 @@ int cif_isp10_streamoff( if (streamoff_dma) cif_isp10_stop_dma(dev); + rockchip_clear_system_status(SYS_STATUS_ISP); + cif_isp10_pltfrm_pr_dbg(dev->dev, "SP state = %s, MP state = %s, DMA state = %s, # frames received = %d\n", cif_isp10_state_string(dev->sp_stream.state), @@ -5807,6 +5815,7 @@ int cif_isp10_streamoff( return 0; err: + rockchip_clear_system_status(SYS_STATUS_ISP); cif_isp10_pltfrm_pr_dbg(dev->dev, "SP state = %s, MP state = %s, DMA state = %s\n", cif_isp10_state_string(dev->sp_stream.state),