mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
media: rockchip: isp: no wait if shutdown
Change-Id: I76d161cb6b1a4b22d41d3a4a2be4d604049ed3af Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
@@ -609,11 +609,13 @@ static int bridge_stop(struct rkisp_bridge_device *dev)
|
||||
dev->ops->disable(dev);
|
||||
rkisp_stop_spstream(sp_stream);
|
||||
hdr_stop_dmatx(dev->ispdev);
|
||||
ret = wait_event_timeout(dev->done, !dev->en,
|
||||
msecs_to_jiffies(1000));
|
||||
if (!ret)
|
||||
v4l2_warn(&dev->sd,
|
||||
"%s timeout ret:%d\n", __func__, ret);
|
||||
if (!dev->ispdev->hw_dev->is_shutdown) {
|
||||
ret = wait_event_timeout(dev->done, !dev->en,
|
||||
msecs_to_jiffies(1000));
|
||||
if (!ret)
|
||||
v4l2_warn(&dev->sd,
|
||||
"%s timeout ret:%d\n", __func__, ret);
|
||||
}
|
||||
crop_off(dev);
|
||||
dev->stopping = false;
|
||||
dev->en = false;
|
||||
|
||||
@@ -790,7 +790,8 @@ static void rkisp_stream_stop(struct rkisp_stream *stream)
|
||||
stream->stopping = true;
|
||||
stream->ops->stop_mi(stream);
|
||||
if ((dev->isp_state & ISP_START) &&
|
||||
dev->isp_inp != INP_DMARX_ISP) {
|
||||
dev->isp_inp != INP_DMARX_ISP &&
|
||||
!dev->hw_dev->is_shutdown) {
|
||||
ret = wait_event_timeout(stream->done,
|
||||
!stream->streaming,
|
||||
msecs_to_jiffies(1000));
|
||||
|
||||
@@ -1518,7 +1518,8 @@ static void rkisp_stream_stop(struct rkisp_stream *stream)
|
||||
stream->stopping = true;
|
||||
stream->ops->stop_mi(stream);
|
||||
if ((dev->isp_state & ISP_START) &&
|
||||
dev->isp_inp != INP_DMARX_ISP) {
|
||||
dev->isp_inp != INP_DMARX_ISP &&
|
||||
!dev->hw_dev->is_shutdown) {
|
||||
ret = wait_event_timeout(stream->done,
|
||||
!stream->streaming,
|
||||
msecs_to_jiffies(1000));
|
||||
|
||||
@@ -1331,7 +1331,7 @@ static void rkisp_stream_stop(struct rkisp_stream *stream)
|
||||
struct v4l2_device *v4l2_dev = &dev->v4l2_dev;
|
||||
unsigned long lock_flags = 0;
|
||||
int ret = 0;
|
||||
bool is_wait = true;
|
||||
bool is_wait = dev->hw_dev->is_shutdown ? false : true;
|
||||
|
||||
if (!dev->dmarx_dev.trigger &&
|
||||
(is_rdbk_stream(stream) || is_hdr_stream(stream))) {
|
||||
|
||||
@@ -966,7 +966,7 @@ static void rkisp_stream_stop(struct rkisp_stream *stream)
|
||||
struct v4l2_device *v4l2_dev = &dev->v4l2_dev;
|
||||
unsigned long lock_flags = 0;
|
||||
int ret = 0;
|
||||
bool is_wait = true;
|
||||
bool is_wait = dev->hw_dev->is_shutdown ? false : true;
|
||||
|
||||
stream->stopping = true;
|
||||
if (dev->hw_dev->is_single)
|
||||
|
||||
@@ -1307,7 +1307,7 @@ static void rkisp_stream_stop(struct rkisp_stream *stream)
|
||||
struct v4l2_device *v4l2_dev = &dev->v4l2_dev;
|
||||
unsigned long lock_flags = 0;
|
||||
int ret = 0;
|
||||
bool is_wait = true;
|
||||
bool is_wait = dev->hw_dev->is_shutdown ? false : true;
|
||||
|
||||
stream->stopping = true;
|
||||
stream->is_pause = false;
|
||||
@@ -1562,9 +1562,10 @@ static void rkisp_stop_streaming(struct vb2_queue *queue)
|
||||
|
||||
if (stream->id == RKISP_STREAM_LUMA) {
|
||||
stream->stopping = true;
|
||||
wait_event_timeout(stream->done,
|
||||
stream->frame_end,
|
||||
msecs_to_jiffies(500));
|
||||
if (!dev->hw_dev->is_shutdown)
|
||||
wait_event_timeout(stream->done,
|
||||
stream->frame_end,
|
||||
msecs_to_jiffies(500));
|
||||
stream->streaming = false;
|
||||
stream->stopping = false;
|
||||
destroy_buf_queue(stream, VB2_BUF_STATE_ERROR);
|
||||
|
||||
@@ -505,7 +505,8 @@ static void dmarx_stop(struct rkisp_stream *stream)
|
||||
int ret = 0;
|
||||
|
||||
stream->stopping = true;
|
||||
if ((dev->isp_state & ISP_START) && !stream->frame_end) {
|
||||
if ((dev->isp_state & ISP_START) && !stream->frame_end &&
|
||||
!dev->hw_dev->is_shutdown) {
|
||||
ret = wait_event_timeout(stream->done,
|
||||
!stream->streaming,
|
||||
msecs_to_jiffies(100));
|
||||
|
||||
@@ -1838,7 +1838,7 @@ static void rkisp_stop_3a_run(struct rkisp_device *dev)
|
||||
int ret = 1000;
|
||||
|
||||
if (!rkisp_is_need_3a(dev) || dev->isp_ver == ISP_V20 ||
|
||||
!params_vdev->is_subs_evt)
|
||||
!params_vdev->is_subs_evt || dev->hw_dev->is_shutdown)
|
||||
return;
|
||||
|
||||
v4l2_event_queue(vdev, &ev);
|
||||
|
||||
Reference in New Issue
Block a user