diff options
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); } |