summaryrefslogtreecommitdiff
path: root/drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c')
-rw-r--r--drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c b/drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c
index 0df46618f33f..72c71faf7fdb 100644
--- a/drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c
+++ b/drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c
@@ -360,8 +360,6 @@ static int prpvf_stop(void *private)
ipu_free_irq(disp_ipu, IPU_IRQ_BG_SF_END, cam);
- ipu_free_irq(cam->ipu, IPU_IRQ_PRP_VF_OUT_EOF, cam);
-
ipu_disable_channel(cam->ipu, CSI_PRP_VF_MEM, true);
ipu_disable_channel(cam->ipu, MEM_ROT_VF_MEM, true);
ipu_uninit_channel(cam->ipu, CSI_PRP_VF_MEM);
@@ -441,6 +439,11 @@ static int prp_vf_disable_csi(void *private)
{
cam_data *cam = (cam_data *) private;
+ /* free csi eof irq firstly.
+ * when disable csi, wait for idmac eof.
+ * it requests eof irq again */
+ ipu_free_irq(cam->ipu, IPU_IRQ_PRP_VF_OUT_EOF, cam);
+
return ipu_disable_csi(cam->ipu, cam->csi);
}