summaryrefslogtreecommitdiff
path: root/drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c
diff options
context:
space:
mode:
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.c32
1 files changed, 31 insertions, 1 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 4035c7664022..7f0984c42950 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
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
@@ -344,6 +344,32 @@ static int prpvf_stop(void *private)
}
/*!
+ * Enable csi
+ * @param private struct cam_data * mxc capture instance
+ *
+ * @return status
+ */
+static int prp_vf_enable_csi(void *private)
+{
+ cam_data *cam = (cam_data *) private;
+
+ return ipu_enable_csi(cam->csi);
+}
+
+/*!
+ * Disable csi
+ * @param private struct cam_data * mxc capture instance
+ *
+ * @return status
+ */
+static int prp_vf_disable_csi(void *private)
+{
+ cam_data *cam = (cam_data *) private;
+
+ return ipu_disable_csi(cam->csi);
+}
+
+/*!
* function to select PRP-VF as the working path
*
* @param private cam_data * mxc v4l2 main structure
@@ -357,6 +383,8 @@ int prp_vf_sdc_select_bg(void *private)
if (cam) {
cam->vf_start_sdc = prpvf_start;
cam->vf_stop_sdc = prpvf_stop;
+ cam->vf_enable_csi = prp_vf_enable_csi;
+ cam->vf_disable_csi = prp_vf_disable_csi;
cam->overlay_active = false;
}
@@ -379,6 +407,8 @@ int prp_vf_sdc_deselect_bg(void *private)
if (cam) {
cam->vf_start_sdc = NULL;
cam->vf_stop_sdc = NULL;
+ cam->vf_enable_csi = NULL;
+ cam->vf_disable_csi = NULL;
}
return err;
}