diff options
author | Sandor Yu <R01008@freescale.com> | 2015-03-30 16:18:44 +0800 |
---|---|---|
committer | Frank Li <Frank.Li@freescale.com> | 2015-04-24 23:02:31 +0800 |
commit | b785eb9fd00a9033074577643e526be69d4bb599 (patch) | |
tree | 4bd4729e235ea86347ace83716f81743d8b63e9b /drivers | |
parent | 39a5e5a39b8e41502717eef1e89596bd2d3111b6 (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.c | 4 |
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); |