CHROMIUM: rk3288-vpu: Set use_dma_bidirectional=1 for decoder CAPTURE queue
authorPawel Osciak <posciak@chromium.org>
Wed, 16 Sep 2015 12:23:29 +0000 (21:23 +0900)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 30 Jun 2016 11:57:41 +0000 (19:57 +0800)
This allows us to read out from decoded buffers to use them for reference
for decoding other frames.

Signed-off-by: Pawel Osciak <posciak@chromium.org>
BUG=chrome-os-partner:45346
TEST=video playback

Reviewed-on: https://chromium-review.googlesource.com/300727
Commit-Ready: Pawel Osciak <posciak@chromium.org>
Tested-by: Pawel Osciak <posciak@chromium.org>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Owen Lin <owenlin@chromium.org>
Change-Id: I454916b0862e541d1362413b29bfd3e51c8e3e6d
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
drivers/media/platform/rk3288-vpu/rk3288_vpu.c

index b5269e36e0a10b9d1cb926067752be41114fff87..779513e2e267b1a3889dabeccdaaeab1eb84a102 100644 (file)
@@ -391,10 +391,12 @@ static int rk3288_vpu_open(struct file *filp)
        q->lock = &dev->vpu_mutex;
        q->buf_struct_size = sizeof(struct rk3288_vpu_buf);
 
-       if (vdev == dev->vfd_enc)
+       if (vdev == dev->vfd_enc) {
                q->ops = get_enc_queue_ops();
-       else if (vdev == dev->vfd_dec)
+       } else if (vdev == dev->vfd_dec) {
                q->ops = get_dec_queue_ops();
+               q->use_dma_bidirectional = 1;
+       }
 
        q->mem_ops = &vb2_dma_contig_memops;
        q->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY;