diff --git a/drivers/media/platform/rockchip/isp/capture_v20.c b/drivers/media/platform/rockchip/isp/capture_v20.c index 5d3cc8c3b154..868a02901dcd 100644 --- a/drivers/media/platform/rockchip/isp/capture_v20.c +++ b/drivers/media/platform/rockchip/isp/capture_v20.c @@ -1812,10 +1812,6 @@ static void rkisp_stop_streaming(struct vb2_queue *queue) rkisp_destroy_dummy_buf(stream); atomic_dec(&dev->cap_dev.refcnt); stream->start_stream = false; - if (stream->id == RKISP_STREAM_SP && stream->out_isp_fmt.fmt_type == FMT_FBCGAIN) { - stream->out_isp_fmt.fmt_type = FMT_YUV; - stream->out_isp_fmt.fourcc = V4L2_PIX_FMT_NV12; - } } static int rkisp_stream_start(struct rkisp_stream *stream) diff --git a/drivers/media/platform/rockchip/ispp/common.c b/drivers/media/platform/rockchip/ispp/common.c index 49962c39b81c..efa25aadd66f 100644 --- a/drivers/media/platform/rockchip/ispp/common.c +++ b/drivers/media/platform/rockchip/ispp/common.c @@ -271,6 +271,7 @@ static void rkispp_free_pool(struct rkispp_hw_dev *hw) if (buf->mem_priv[j]) { g_ops->unmap_dmabuf(buf->mem_priv[j]); g_ops->detach_dmabuf(buf->mem_priv[j]); + dma_buf_put(buf->dbufs->dbuf[j]); buf->mem_priv[j] = NULL; } } @@ -318,11 +319,12 @@ static int rkispp_init_pool(struct rkispp_hw_dev *hw, struct rkisp_ispp_buf *dbu } else { pool->dma[i] = *((dma_addr_t *)g_ops->cookie(mem)); } + get_dma_buf(dbufs->dbuf[i]); + pool->vaddr[i] = g_ops->vaddr(mem); if (rkispp_debug) dev_info(hw->dev, "%s dma[%d]:0x%x\n", __func__, i, (u32)pool->dma[i]); - pool->vaddr[i] = g_ops->vaddr(mem); } rkispp_init_regbuf(hw); hw->is_idle = true;