diff --git a/drivers/media/platform/rockchip/isp/capture_v30.c b/drivers/media/platform/rockchip/isp/capture_v30.c index ceeed0dfc796..4e35b2e85bcf 100644 --- a/drivers/media/platform/rockchip/isp/capture_v30.c +++ b/drivers/media/platform/rockchip/isp/capture_v30.c @@ -1170,6 +1170,9 @@ static int rkisp_queue_setup(struct vb2_queue *queue, plane_fmt->sizeimage / pixm->height * ALIGN(pixm->height, 16) : plane_fmt->sizeimage; + /* attach information size */ + if (stream->is_attach_info && i == isp_fmt->mplanes - 1) + sizes[i] += sizeof(struct rkisp_frame_info); } rkisp_chk_tb_over(dev); diff --git a/drivers/media/platform/rockchip/isp/capture_v39.c b/drivers/media/platform/rockchip/isp/capture_v39.c index 993a0bd4dcfd..0242e065c488 100644 --- a/drivers/media/platform/rockchip/isp/capture_v39.c +++ b/drivers/media/platform/rockchip/isp/capture_v39.c @@ -1423,16 +1423,13 @@ static int rkisp_stream_start(struct rkisp_stream *stream) { struct rkisp_device *dev = stream->ispdev; struct v4l2_device *v4l2_dev = &dev->v4l2_dev; - bool async = false; + bool async = (dev->isp_state & ISP_STOP) ? false : true; int ret; stream->need_scl_upd = false; if (stream->id == RKISP_STREAM_LDC) goto skip; - async = (dev->cap_dev.stream[RKISP_STREAM_MP].streaming || - dev->cap_dev.stream[RKISP_STREAM_SP].streaming); - /* * can't be async now, otherwise the latter started stream fails to * produce mi interrupt.