summaryrefslogtreecommitdiff
path: root/drivers/media/video/mxc/capture/ipu_csi_enc.c
diff options
context:
space:
mode:
authorSheng Nan <b38800@freescale.com>2012-10-15 20:01:32 +0800
committerLiu Ying <Ying.Liu@freescale.com>2012-10-26 15:33:18 +0800
commit025f04c81babea541e74a928776ab6e05e8df291 (patch)
tree299a73642d08fa829f901e1e8fc25875503b567a /drivers/media/video/mxc/capture/ipu_csi_enc.c
parent150149473f072980d28c11a503864c73117fd956 (diff)
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> (cherry picked from commit 8d06743e323da3a65c7a488315ca33c7901f9bc8)
Diffstat (limited to 'drivers/media/video/mxc/capture/ipu_csi_enc.c')
-rw-r--r--drivers/media/video/mxc/capture/ipu_csi_enc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/media/video/mxc/capture/ipu_csi_enc.c b/drivers/media/video/mxc/capture/ipu_csi_enc.c
index 837ae2a4ffb5..fc5a5a969ca8 100644
--- a/drivers/media/video/mxc/capture/ipu_csi_enc.c
+++ b/drivers/media/video/mxc/capture/ipu_csi_enc.c
@@ -291,8 +291,6 @@ static int csi_enc_disabling_tasks(void *private)
int csi_id;
#endif
- ipu_free_irq(cam->ipu, IPU_IRQ_CSI0_OUT_EOF, cam);
-
err = ipu_disable_channel(cam->ipu, CSI_MEM, true);
ipu_uninit_channel(cam->ipu, CSI_MEM);
@@ -341,6 +339,11 @@ static int csi_enc_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_CSI0_OUT_EOF, cam);
+
return ipu_disable_csi(cam->ipu, cam->csi);
}