summaryrefslogtreecommitdiff
path: root/drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c
diff options
context:
space:
mode:
authorSheng Nan <b38800@freescale.com>2012-10-15 20:01:32 +0800
committerSheng Nan <b38800@freescale.com>2012-10-16 15:57:39 +0800
commit8d06743e323da3a65c7a488315ca33c7901f9bc8 (patch)
tree161ccfae8ef0174cb291ce4f9ee7617412048aea /drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c
parent4ddc27dff9b806d8c21dbcf7a57a3608c422d1a4 (diff)
downloadlinux-8d06743e323da3a65c7a488315ca33c7901f9bc8.tar.gz
ENGR00224964-4 mxc_v4l2_capture: change capture stream off sequence
Change v4l2 capture stream off sequence. Both CSI MEM and CSI IC MEM channel wait for idmac eof and disable csi firstly. The disable sequence is: - wait for idmac channel EOF, disable csi - disable idmac channel - disable smfc (CSI-->MEM channel) Signed-off-by: Sheng Nan <b38800@freescale.com>
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);
}