diff options
author | Sheng Nan <b38800@freescale.com> | 2012-10-15 20:01:32 +0800 |
---|---|---|
committer | Liu Ying <Ying.Liu@freescale.com> | 2012-10-26 15:33:18 +0800 |
commit | 025f04c81babea541e74a928776ab6e05e8df291 (patch) | |
tree | 299a73642d08fa829f901e1e8fc25875503b567a /drivers/media/video/mxc/capture/ipu_csi_enc.c | |
parent | 150149473f072980d28c11a503864c73117fd956 (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.c | 7 |
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); } |