summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSandor Yu <R01008@freescale.com>2015-03-30 16:18:44 +0800
committerguoyin.chen <guoyin.chen@freescale.com>2015-05-08 17:24:31 +0800
commit723cdd5318e7286e07f2bfe8dc68422ec2045486 (patch)
treee9671f9ccb6f898c34a066ba105970983e4f48fe /drivers
parentc488b4e98f5181f2b83c9d959f20d5db1831f84d (diff)
MLK-10434-1: v4l2 capture: Add s_power subdev api in open/close
Add s_power subdev api in vl42 capture open and close function. Signed-off-by: Sandor Yu <R01008@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/platform/mxc/subdev/mx6s_capture.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/platform/mxc/subdev/mx6s_capture.c b/drivers/media/platform/mxc/subdev/mx6s_capture.c
index f7b910f1d61e..e1bced59ed9c 100644
--- a/drivers/media/platform/mxc/subdev/mx6s_capture.c
+++ b/drivers/media/platform/mxc/subdev/mx6s_capture.c
@@ -1041,6 +1041,7 @@ static irqreturn_t mx6s_csi_irq_handler(int irq, void *data)
static int mx6s_csi_open(struct file *file)
{
struct mx6s_csi_dev *csi_dev = video_drvdata(file);
+ struct v4l2_subdev *sd = csi_dev->sd;
struct vb2_queue *q = &csi_dev->vb2_vidq;
int ret = 0;
@@ -1070,6 +1071,7 @@ static int mx6s_csi_open(struct file *file)
request_bus_freq(BUS_FREQ_HIGH);
+ v4l2_subdev_call(sd, core, s_power, 1);
mx6s_csi_init(csi_dev);
mutex_unlock(&csi_dev->lock);
@@ -1085,12 +1087,14 @@ unlock:
static int mx6s_csi_close(struct file *file)
{
struct mx6s_csi_dev *csi_dev = video_drvdata(file);
+ struct v4l2_subdev *sd = csi_dev->sd;
mutex_lock(&csi_dev->lock);
vb2_queue_release(&csi_dev->vb2_vidq);
mx6s_csi_deinit(csi_dev);
+ v4l2_subdev_call(sd, core, s_power, 0);
vb2_dma_contig_cleanup_ctx(csi_dev->alloc_ctx);
mutex_unlock(&csi_dev->lock);