|
@@ -693,7 +693,8 @@ const struct v4l2_ioctl_ops mtk_venc_ioctl_ops = {
|
|
static int vb2ops_venc_queue_setup(struct vb2_queue *vq,
|
|
static int vb2ops_venc_queue_setup(struct vb2_queue *vq,
|
|
unsigned int *nbuffers,
|
|
unsigned int *nbuffers,
|
|
unsigned int *nplanes,
|
|
unsigned int *nplanes,
|
|
- unsigned int sizes[], void *alloc_ctxs[])
|
|
|
|
|
|
+ unsigned int sizes[],
|
|
|
|
+ struct device *alloc_devs[])
|
|
{
|
|
{
|
|
struct mtk_vcodec_ctx *ctx = vb2_get_drv_priv(vq);
|
|
struct mtk_vcodec_ctx *ctx = vb2_get_drv_priv(vq);
|
|
struct mtk_q_data *q_data;
|
|
struct mtk_q_data *q_data;
|
|
@@ -705,17 +706,13 @@ static int vb2ops_venc_queue_setup(struct vb2_queue *vq,
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
if (*nplanes) {
|
|
if (*nplanes) {
|
|
- for (i = 0; i < *nplanes; i++) {
|
|
|
|
|
|
+ for (i = 0; i < *nplanes; i++)
|
|
if (sizes[i] < q_data->sizeimage[i])
|
|
if (sizes[i] < q_data->sizeimage[i])
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
- alloc_ctxs[i] = ctx->dev->alloc_ctx;
|
|
|
|
- }
|
|
|
|
} else {
|
|
} else {
|
|
*nplanes = q_data->fmt->num_planes;
|
|
*nplanes = q_data->fmt->num_planes;
|
|
- for (i = 0; i < *nplanes; i++) {
|
|
|
|
|
|
+ for (i = 0; i < *nplanes; i++)
|
|
sizes[i] = q_data->sizeimage[i];
|
|
sizes[i] = q_data->sizeimage[i];
|
|
- alloc_ctxs[i] = ctx->dev->alloc_ctx;
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
@@ -1249,6 +1246,7 @@ int mtk_vcodec_enc_queue_init(void *priv, struct vb2_queue *src_vq,
|
|
src_vq->mem_ops = &vb2_dma_contig_memops;
|
|
src_vq->mem_ops = &vb2_dma_contig_memops;
|
|
src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
|
|
src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
|
|
src_vq->lock = &ctx->dev->dev_mutex;
|
|
src_vq->lock = &ctx->dev->dev_mutex;
|
|
|
|
+ src_vq->dev = &ctx->dev->plat_dev->dev;
|
|
|
|
|
|
ret = vb2_queue_init(src_vq);
|
|
ret = vb2_queue_init(src_vq);
|
|
if (ret)
|
|
if (ret)
|
|
@@ -1262,6 +1260,7 @@ int mtk_vcodec_enc_queue_init(void *priv, struct vb2_queue *src_vq,
|
|
dst_vq->mem_ops = &vb2_dma_contig_memops;
|
|
dst_vq->mem_ops = &vb2_dma_contig_memops;
|
|
dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
|
|
dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
|
|
dst_vq->lock = &ctx->dev->dev_mutex;
|
|
dst_vq->lock = &ctx->dev->dev_mutex;
|
|
|
|
+ dst_vq->dev = &ctx->dev->plat_dev->dev;
|
|
|
|
|
|
return vb2_queue_init(dst_vq);
|
|
return vb2_queue_init(dst_vq);
|
|
}
|
|
}
|