MFC_CTRL_TYPE_DST, index) < 0)
mfc_err_ctx("failed in cleanup_buf_ctrls\n");
} else if (vq->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
+ if (IS_BUFFER_BATCH_MODE(ctx)) {
+ struct s5p_mfc_buf *buf = vb_to_mfc_buf(vb);
+ int i;
+
+ for (i = 0; i < ctx->src_fmt->num_planes; i++)
+ s5p_mfc_bufcon_put_daddr(ctx, buf, i);
+ }
if (call_cop(ctx, cleanup_buf_ctrls, ctx,
MFC_CTRL_TYPE_SRC, index) < 0)
mfc_err_ctx("failed in cleanup_buf_ctrls\n");
src_mb = s5p_mfc_find_del_buf(&ctx->buf_queue_lock,
&ctx->src_buf_queue, enc_addr[0],
ctx->num_bufs_in_vb);
- if (src_mb) {
- for (i = 0; i < raw->num_planes; i++)
- s5p_mfc_bufcon_put_daddr(ctx, src_mb, i);
+ if (src_mb)
vb2_buffer_done(&src_mb->vb.vb2_buf, VB2_BUF_STATE_DONE);
- }
}
/* encoder src buffer CFW UNPROT */
src_mb = s5p_mfc_find_del_buf(&ctx->buf_queue_lock,
&ctx->src_buf_nal_queue, enc_addr[0],
ctx->num_bufs_in_vb);
- if (src_mb) {
- for (i = 0; i < raw->num_planes; i++)
- s5p_mfc_bufcon_put_daddr(ctx, src_mb, i);
+ if (src_mb)
vb2_buffer_done(&src_mb->vb.vb2_buf, VB2_BUF_STATE_DONE);
- }
}
}
}