diff options
author | Sandor Yu <R01008@freescale.com> | 2015-03-15 15:23:15 +0800 |
---|---|---|
committer | Sandor Yu <R01008@freescale.com> | 2015-03-16 10:08:39 +0800 |
commit | 899414fc9ed0768244c9d877269712a823e3cfe8 (patch) | |
tree | 92d0c34df3d22294f5cdac24f1c3674f0300acb3 /drivers | |
parent | c33b14da895e8da8a951ccd5a167a7e4ebbb2367 (diff) |
MLK-10423: Capture: System hang if capture test app been killed
System will hang if csi unit test mx6s_v4l2_capture.out process
been killed.
In csi capture driver function mx6s_csi_enable/disable is called
by vidioc_streamon/streamoff function.
But when csi unit test process is killed, vidioc_streamon/streamoff
will not been called, and csi function still working even the csi
clock is gated.
Move mx6s_csi_enable/disable function from
mx6s_vidioc_streamon/streamoff function to
mx6s_start_streaming/ mx6s_stop_streaming function to resolve the
issue.
Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit fe3700b2dc97952ef5a055a48e1d5ba89e11b7dd)
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/platform/mxc/subdev/mx6s_capture.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/platform/mxc/subdev/mx6s_capture.c b/drivers/media/platform/mxc/subdev/mx6s_capture.c index 8cb1c1d14cf5..ff7d01c2edef 100644 --- a/drivers/media/platform/mxc/subdev/mx6s_capture.c +++ b/drivers/media/platform/mxc/subdev/mx6s_capture.c @@ -816,6 +816,8 @@ static int mx6s_start_streaming(struct vb2_queue *vq, unsigned int count) spin_unlock_irqrestore(&csi_dev->slock, flags); + mx6s_csi_enable(csi_dev); + return 0; } @@ -826,6 +828,8 @@ static int mx6s_stop_streaming(struct vb2_queue *vq) struct mx6s_buffer *buf, *tmp; void *b; + mx6s_csi_disable(csi_dev); + spin_lock_irqsave(&csi_dev->slock, flags); @@ -1378,8 +1382,6 @@ static int mx6s_vidioc_streamon(struct file *file, void *priv, ret = vb2_streamon(&csi_dev->vb2_vidq, i); - mx6s_csi_enable(csi_dev); - if (!ret) v4l2_subdev_call(sd, video, s_stream, 1); @@ -1405,8 +1407,6 @@ static int mx6s_vidioc_streamoff(struct file *file, void *priv, v4l2_subdev_call(sd, video, s_stream, 0); - mx6s_csi_disable(csi_dev); - return 0; } |