diff options
author | Sheng Nan <b38800@freescale.com> | 2012-10-15 20:01:32 +0800 |
---|---|---|
committer | Sheng Nan <b38800@freescale.com> | 2012-10-16 15:57:39 +0800 |
commit | 8d06743e323da3a65c7a488315ca33c7901f9bc8 (patch) | |
tree | 161ccfae8ef0174cb291ce4f9ee7617412048aea /drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c | |
parent | 4ddc27dff9b806d8c21dbcf7a57a3608c422d1a4 (diff) | |
download | linux-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.c | 7 |
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); } |