mirror of https://gitee.com/openkylin/linux.git
media: cedrus: Remove dst_bufs from context
This array is just duplicated capture buffer queue. Remove it and adjust code to look into capture buffer queue instead. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Acked-by: Maxime Ripard <maxime.ripard@bootlin.com> Acked-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
09c41a23a2
commit
633eadc9ba
|
@ -100,8 +100,6 @@ struct cedrus_ctx {
|
|||
struct v4l2_ctrl_handler hdl;
|
||||
struct v4l2_ctrl **ctrls;
|
||||
|
||||
struct vb2_buffer *dst_bufs[VIDEO_MAX_FRAME];
|
||||
|
||||
union {
|
||||
struct {
|
||||
void *mv_col_buf;
|
||||
|
@ -187,7 +185,7 @@ static inline dma_addr_t cedrus_dst_buf_addr(struct cedrus_ctx *ctx,
|
|||
if (index < 0)
|
||||
return 0;
|
||||
|
||||
buf = ctx->dst_bufs[index];
|
||||
buf = ctx->fh.m2m_ctx->cap_q_ctx.q.bufs[index];
|
||||
return buf ? cedrus_buf_addr(buf, &ctx->dst_fmt, plane) : 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
|
|||
if (buf_idx < 0)
|
||||
continue;
|
||||
|
||||
cedrus_buf = vb2_to_cedrus_buffer(ctx->dst_bufs[buf_idx]);
|
||||
cedrus_buf = vb2_to_cedrus_buffer(cap_q->bufs[buf_idx]);
|
||||
position = cedrus_buf->codec.h264.position;
|
||||
used_dpbs |= BIT(position);
|
||||
|
||||
|
@ -193,7 +193,7 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx,
|
|||
if (buf_idx < 0)
|
||||
continue;
|
||||
|
||||
ref_buf = to_vb2_v4l2_buffer(ctx->dst_bufs[buf_idx]);
|
||||
ref_buf = to_vb2_v4l2_buffer(cap_q->bufs[buf_idx]);
|
||||
cedrus_buf = vb2_v4l2_to_cedrus_buffer(ref_buf);
|
||||
position = cedrus_buf->codec.h264.position;
|
||||
|
||||
|
|
|
@ -411,26 +411,6 @@ static void cedrus_queue_cleanup(struct vb2_queue *vq, u32 state)
|
|||
}
|
||||
}
|
||||
|
||||
static int cedrus_buf_init(struct vb2_buffer *vb)
|
||||
{
|
||||
struct vb2_queue *vq = vb->vb2_queue;
|
||||
struct cedrus_ctx *ctx = vb2_get_drv_priv(vq);
|
||||
|
||||
if (!V4L2_TYPE_IS_OUTPUT(vq->type))
|
||||
ctx->dst_bufs[vb->index] = vb;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cedrus_buf_cleanup(struct vb2_buffer *vb)
|
||||
{
|
||||
struct vb2_queue *vq = vb->vb2_queue;
|
||||
struct cedrus_ctx *ctx = vb2_get_drv_priv(vq);
|
||||
|
||||
if (!V4L2_TYPE_IS_OUTPUT(vq->type))
|
||||
ctx->dst_bufs[vb->index] = NULL;
|
||||
}
|
||||
|
||||
static int cedrus_buf_out_validate(struct vb2_buffer *vb)
|
||||
{
|
||||
struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
|
||||
|
@ -517,8 +497,6 @@ static void cedrus_buf_request_complete(struct vb2_buffer *vb)
|
|||
static struct vb2_ops cedrus_qops = {
|
||||
.queue_setup = cedrus_queue_setup,
|
||||
.buf_prepare = cedrus_buf_prepare,
|
||||
.buf_init = cedrus_buf_init,
|
||||
.buf_cleanup = cedrus_buf_cleanup,
|
||||
.buf_queue = cedrus_buf_queue,
|
||||
.buf_out_validate = cedrus_buf_out_validate,
|
||||
.buf_request_complete = cedrus_buf_request_complete,
|
||||
|
|
Loading…
Reference in New Issue