From bbeb26a30a804b79e0bd206ad6815d123c50db38 Mon Sep 17 00:00:00 2001 From: Hu Kejun Date: Sat, 2 May 2020 10:46:54 +0800 Subject: [PATCH] media: rockchip: isp: fix mp/sp can not get picture in rdbk mode Signed-off-by: Hu Kejun Change-Id: Ibf303e6031d4d31a7cc281dff844c1e0e6b3354f --- drivers/media/platform/rockchip/isp/capture.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/capture.c b/drivers/media/platform/rockchip/isp/capture.c index dffe6e205505..e1ce24cd1fde 100644 --- a/drivers/media/platform/rockchip/isp/capture.c +++ b/drivers/media/platform/rockchip/isp/capture.c @@ -1570,16 +1570,14 @@ static int mi_frame_end(struct rkisp_stream *stream) rkisp_buf_queue(&cap->rdbk_buf[RDBK_L]->vb.vb2_buf); } cap->rdbk_buf[RDBK_L] = stream->curr_buf; - } - if (stream->id == RKISP_STREAM_DMATX1) { + } else if (stream->id == RKISP_STREAM_DMATX1) { if (cap->rdbk_buf[RDBK_M]) { v4l2_err(&isp_dev->v4l2_dev, "multiple middle data in hdr frame\n"); rkisp_buf_queue(&cap->rdbk_buf[RDBK_M]->vb.vb2_buf); } cap->rdbk_buf[RDBK_M] = stream->curr_buf; - } - if (stream->id == RKISP_STREAM_DMATX2) { + } else if (stream->id == RKISP_STREAM_DMATX2) { if (cap->rdbk_buf[RDBK_S]) { v4l2_err(&isp_dev->v4l2_dev, "multiple short data in hdr frame\n"); @@ -1587,6 +1585,9 @@ static int mi_frame_end(struct rkisp_stream *stream) } cap->rdbk_buf[RDBK_S] = stream->curr_buf; rdbk_frame_end(stream); + } else { + vb2_buffer_done(&stream->curr_buf->vb.vb2_buf, + VB2_BUF_STATE_DONE); } }