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)
spin_unlock_irqrestore(&csi_dev->slock, flags);
+ mx6s_csi_enable(csi_dev);
+
return 0;
}
struct mx6s_buffer *buf, *tmp;
void *b;
+ mx6s_csi_disable(csi_dev);
+
spin_lock_irqsave(&csi_dev->slock, flags);
ret = vb2_streamon(&csi_dev->vb2_vidq, i);
- mx6s_csi_enable(csi_dev);
-
if (!ret)
v4l2_subdev_call(sd, video, s_stream, 1);
v4l2_subdev_call(sd, video, s_stream, 0);
- mx6s_csi_disable(csi_dev);
-
return 0;
}