summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandor Yu <R01008@freescale.com>2015-03-15 15:23:15 +0800
committerSandor Yu <R01008@freescale.com>2015-03-16 10:08:39 +0800
commit899414fc9ed0768244c9d877269712a823e3cfe8 (patch)
tree92d0c34df3d22294f5cdac24f1c3674f0300acb3
parentc33b14da895e8da8a951ccd5a167a7e4ebbb2367 (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)
-rw-r--r--drivers/media/platform/mxc/subdev/mx6s_capture.c8
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;
}