media: rockchip: isp: no wait if shutdown

Change-Id: I76d161cb6b1a4b22d41d3a4a2be4d604049ed3af
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2022-10-11 10:19:20 +08:00
parent 67e4e92e23
commit f97dd008a3
8 changed files with 21 additions and 15 deletions

View File

@@ -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;

View File

@@ -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));

View File

@@ -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));

View File

@@ -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))) {

View File

@@ -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)

View File

@@ -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);

View File

@@ -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));

View File

@@ -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);