From: Sergey Senozhatsky <[email protected]>

This simplifies the code a tiny bit and let's us to avoid
unneeded ->prepare()/->finish() calls.

Signed-off-by: Sergey Senozhatsky <[email protected]>
---
 drivers/media/common/videobuf2/videobuf2-core.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/media/common/videobuf2/videobuf2-core.c 
b/drivers/media/common/videobuf2/videobuf2-core.c
index 1a55ea19160b..7e081716b8da 100644
--- a/drivers/media/common/videobuf2/videobuf2-core.c
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
@@ -304,6 +304,9 @@ static void __vb2_buf_mem_prepare(struct vb2_buffer *vb)
 {
        unsigned int plane;
 
+       if (vb->synced)
+               return;
+
        if (vb->need_cache_sync_on_prepare) {
                for (plane = 0; plane < vb->num_planes; ++plane)
                        call_void_memop(vb, prepare,
@@ -320,6 +323,9 @@ static void __vb2_buf_mem_finish(struct vb2_buffer *vb)
 {
        unsigned int plane;
 
+       if (!vb->synced)
+               return;
+
        if (vb->need_cache_sync_on_finish) {
                for (plane = 0; plane < vb->num_planes; ++plane)
                        call_void_memop(vb, finish,
@@ -2000,8 +2006,7 @@ static void __vb2_queue_cancel(struct vb2_queue *q)
                                call_void_vb_qop(vb, buf_request_complete, vb);
                }
 
-               if (vb->synced)
-                       __vb2_buf_mem_finish(vb);
+               __vb2_buf_mem_finish(vb);
 
                if (vb->prepared) {
                        call_void_vb_qop(vb, buf_finish, vb);
-- 
2.26.2

Reply via email to