diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2014-03-06 14:55:38 -0700 |
---|---|---|
committer | Troy Kisky <troy.kisky@boundarydevices.com> | 2014-04-24 18:59:49 -0700 |
commit | e8571c40ffc6a22e31fa12445de5722cc88a0d44 (patch) | |
tree | 1204a0e32e48bbdb193757793a37e63f0dcf6ddb | |
parent | 771953115d7d2dfaf794aae472c13928795c506b (diff) |
mxc_v4l2_capture: pair up ipu_enable_csi/ipu_disable_csi
8 files changed, 32 insertions, 32 deletions
diff --git a/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c b/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c index 4a975b54a977..7b0b7346ef1a 100644 --- a/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c +++ b/drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.c @@ -452,9 +452,7 @@ static int bg_overlay_stop(void *private) */ static int bg_overlay_enable_csi(void *private) { - cam_data *cam = (cam_data *) private; - - return ipu_enable_csi(cam->ipu, cam->csi); + return cam_ipu_enable_csi((cam_data *)private); } /*! @@ -471,8 +469,7 @@ static int bg_overlay_disable_csi(void *private) * 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); + return cam_ipu_disable_csi(cam); } /*! diff --git a/drivers/media/platform/mxc/capture/ipu_csi_enc.c b/drivers/media/platform/mxc/capture/ipu_csi_enc.c index d8d2c5aee582..fa0091630d00 100644 --- a/drivers/media/platform/mxc/capture/ipu_csi_enc.c +++ b/drivers/media/platform/mxc/capture/ipu_csi_enc.c @@ -319,9 +319,7 @@ static int csi_enc_disabling_tasks(void *private) */ static int csi_enc_enable_csi(void *private) { - cam_data *cam = (cam_data *) private; - - return ipu_enable_csi(cam->ipu, cam->csi); + return cam_ipu_enable_csi((cam_data *)private); } /*! @@ -338,8 +336,7 @@ static int csi_enc_disable_csi(void *private) * 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); + return cam_ipu_disable_csi(cam); } /*! diff --git a/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c b/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c index 80136156ceaf..012a9374385a 100644 --- a/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c +++ b/drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.c @@ -537,9 +537,7 @@ static int foreground_stop(void *private) */ static int foreground_enable_csi(void *private) { - cam_data *cam = (cam_data *) private; - - return ipu_enable_csi(cam->ipu, cam->csi); + return cam_ipu_enable_csi((cam_data *)private); } /*! @@ -556,8 +554,7 @@ static int foreground_disable_csi(void *private) * 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); + return cam_ipu_disable_csi(cam); } /*! diff --git a/drivers/media/platform/mxc/capture/ipu_prp_enc.c b/drivers/media/platform/mxc/capture/ipu_prp_enc.c index 336139159569..9de0f54190f9 100644 --- a/drivers/media/platform/mxc/capture/ipu_prp_enc.c +++ b/drivers/media/platform/mxc/capture/ipu_prp_enc.c @@ -479,9 +479,7 @@ static int prp_enc_disabling_tasks(void *private) */ static int prp_enc_enable_csi(void *private) { - cam_data *cam = (cam_data *) private; - - return ipu_enable_csi(cam->ipu, cam->csi); + return cam_ipu_enable_csi((cam_data *)private); } /*! @@ -499,8 +497,7 @@ static int prp_enc_disable_csi(void *private) * it requests eof irq again */ if (cam->rotation < IPU_ROTATE_90_RIGHT) ipu_free_irq(cam->ipu, IPU_IRQ_PRP_ENC_OUT_EOF, cam); - - return ipu_disable_csi(cam->ipu, cam->csi); + return cam_ipu_disable_csi(cam); } /*! diff --git a/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c b/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c index b9610f1ed820..7a9a4313d8da 100644 --- a/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c +++ b/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc.c @@ -484,9 +484,7 @@ static int prpvf_stop(void *private) */ static int prp_vf_enable_csi(void *private) { - cam_data *cam = (cam_data *) private; - - return ipu_enable_csi(cam->ipu, cam->csi); + return cam_ipu_enable_csi((cam_data *)private); } /*! @@ -504,8 +502,7 @@ static int prp_vf_disable_csi(void *private) * it requests eof irq again */ if (cam->vf_rotation < IPU_ROTATE_VERT_FLIP) ipu_free_irq(cam->ipu, IPU_IRQ_PRP_VF_OUT_EOF, cam); - - return ipu_disable_csi(cam->ipu, cam->csi); + return cam_ipu_disable_csi(cam); } /*! diff --git a/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c b/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c index a24d82dfca63..d22d214aa7ce 100644 --- a/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c +++ b/drivers/media/platform/mxc/capture/ipu_prp_vf_sdc_bg.c @@ -427,9 +427,7 @@ static int prpvf_stop(void *private) */ static int prp_vf_enable_csi(void *private) { - cam_data *cam = (cam_data *) private; - - return ipu_enable_csi(cam->ipu, cam->csi); + return cam_ipu_enable_csi((cam_data *)private); } /*! @@ -446,8 +444,7 @@ static int prp_vf_disable_csi(void *private) * 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); + return cam_ipu_disable_csi(cam); } /*! diff --git a/drivers/media/platform/mxc/capture/ipu_still.c b/drivers/media/platform/mxc/capture/ipu_still.c index b295a1850301..3a44be965eda 100644 --- a/drivers/media/platform/mxc/capture/ipu_still.c +++ b/drivers/media/platform/mxc/capture/ipu_still.c @@ -168,7 +168,7 @@ static int prp_still_start(void *private) ipu_select_buffer(cam->ipu, CSI_MEM, IPU_OUTPUT_BUFFER, 0); ipu_enable_channel(cam->ipu, CSI_MEM); - ipu_enable_csi(cam->ipu, cam->csi); + cam_ipu_enable_csi(cam); #endif return err; @@ -192,7 +192,7 @@ static int prp_still_stop(void *private) ipu_free_irq(cam->ipu, IPU_IRQ_CSI0_OUT_EOF, cam); #endif - ipu_disable_csi(cam->ipu, cam->csi); + cam_ipu_disable_csi(cam); ipu_disable_channel(cam->ipu, CSI_MEM, true); ipu_uninit_channel(cam->ipu, CSI_MEM); diff --git a/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h b/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h index 5835daedf4c0..3c0b515e0abb 100644 --- a/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h +++ b/drivers/media/platform/mxc/capture/mxc_v4l2_capture.h @@ -202,6 +202,7 @@ typedef struct _cam_data { /* misc status flag */ bool overlay_on; bool capture_on; + bool ipu_enable_csi_called; int overlay_pid; int capture_pid; bool low_power; @@ -263,4 +264,21 @@ void set_mclk_rate(uint32_t *p_mclk_freq, uint32_t csi); void mxc_camera_common_lock(void); void mxc_camera_common_unlock(void); +static inline int cam_ipu_enable_csi(cam_data *cam) +{ + int ret = ipu_enable_csi(cam->ipu, cam->csi); + if (!ret) + cam->ipu_enable_csi_called = 1; + return ret; +} + +static inline int cam_ipu_disable_csi(cam_data *cam) +{ + if (!cam->ipu_enable_csi_called) + return 0; + cam->ipu_enable_csi_called = 0; + return ipu_disable_csi(cam->ipu, cam->csi); +} + + #endif /* __MXC_V4L2_CAPTURE_H__ */ |