Received: by 10.192.165.148 with SMTP id m20csp463896imm; Fri, 4 May 2018 13:12:44 -0700 (PDT) X-Google-Smtp-Source: AB8JxZosCCXFQ7M31Q2wleSI8Pet2UU5mfVZ6KXQqpv44fA4NZ6pmRIeHyRWrvWUYupT3gq+bPLy X-Received: by 2002:a17:902:ac96:: with SMTP id h22-v6mr29251616plr.338.1525464764396; Fri, 04 May 2018 13:12:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525464764; cv=none; d=google.com; s=arc-20160816; b=UGMuFd86RaE693P5wXXedV7TlMuNatumz0IEhB1V7yMoSxumNzjC+LNMPJxdzPjXTk SJ9wjzzjBYXqJieb417Km1Y8rxqwmcj4LZpL6vf9phLByg/iJkWbWsDiuW7eHcNCe+Ii vfXqZIgQZ/LAVsI/d733Ufb3WzEhnC5j/rGpF7DTyLg5A3fNWUbbvNnJipitg4X8Frfa 9Y0F/zJVPlRLsargK4GMq8PlmkLOMAb73mva/oxUKBybQD9x0pt9bT6SZ6XBVnnHNn/E k3/QonLFRoPJx3Ayo6t6dJHE5ZKnAnelQ1agdhQbf+sHDTWqZdDcWe5D6SzfJGeNQsjW V1YA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=Wd7khdh2OXrnWiIf358hR9kMgJc3ZujL6TT/XZfU7bc=; b=nKLASmCS03/25kTNu3+fhtVVGhMo6s5ISsxc7kEPeG7GkqIaHnYxtDF2s6LBsrV443 Sah/jblASYLYkwsK9RRdQFgDEL8Zofp6yfPH843EoKP4Gj1j4K2wpEy5/hZHTgC3KuVB oEojRbQgfzT09wg2l3kuMw2cFHniJ9W0t7ruJwPC7wJed1VBfC3rFHo2qDfDoPAw9Wnk OJYMO6UivuUMcgBh8hoOt9YEN5xngylA6bv3qsKndEyi/PzsDdSWxuia/n+UMDeHTaVx eYKznO4EXy6/HqFNW29N3g9qWZ+Mr8haT+/y+V7iYrlegFSAieMam3OhC2IllSxvZSuf A0fQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m1-v6si716819pls.70.2018.05.04.13.12.30; Fri, 04 May 2018 13:12:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751951AbeEDUIA (ORCPT + 99 others); Fri, 4 May 2018 16:08:00 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:54022 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751887AbeEDUH7 (ORCPT ); Fri, 4 May 2018 16:07:59 -0400 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: ezequiel) with ESMTPSA id B0852286550 From: Ezequiel Garcia To: linux-media@vger.kernel.org Cc: kernel@collabora.com, Hans Verkuil , Mauro Carvalho Chehab , Shuah Khan , Pawel Osciak , Alexandre Courbot , Sakari Ailus , Brian Starkey , linux-kernel@vger.kernel.org, Gustavo Padovan , Ezequiel Garcia Subject: [PATCH v9 05/15] vb2: add unordered vb2_queue property for drivers Date: Fri, 4 May 2018 17:06:02 -0300 Message-Id: <20180504200612.8763-6-ezequiel@collabora.com> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180504200612.8763-1-ezequiel@collabora.com> References: <20180504200612.8763-1-ezequiel@collabora.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gustavo Padovan Explicit synchronization benefits a lot from ordered queues, they fit better in a pipeline with DRM for example so create a opt-in way for drivers notify videobuf2 that the queue is unordered. v5: go back to a bitfield property for the unordered property. v4: rename it to vb2_ops_is_unordered() (Hans Verkuil) v3: - make it bool (Hans) - create vb2_ops_set_unordered() helper v2: improve comments for is_unordered flag (Hans Verkuil) Signed-off-by: Gustavo Padovan Signed-off-by: Ezequiel Garcia --- include/media/videobuf2-core.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h index f9633de0386c..364e4cb41b10 100644 --- a/include/media/videobuf2-core.h +++ b/include/media/videobuf2-core.h @@ -467,6 +467,8 @@ struct vb2_buf_ops { * @quirk_poll_must_check_waiting_for_buffers: Return %EPOLLERR at poll when QBUF * has not been called. This is a vb1 idiom that has been adopted * also by vb2. + * @unordered: tell if the queue is unordered, i.e. buffers can be + * dequeued in a different order from how they were queued. * @lock: pointer to a mutex that protects the &struct vb2_queue. The * driver can set this to a mutex to let the v4l2 core serialize * the queuing ioctls. If the driver wants to handle locking @@ -533,6 +535,7 @@ struct vb2_queue { unsigned fileio_read_once:1; unsigned fileio_write_immediately:1; unsigned allow_zero_bytesused:1; + unsigned unordered:1; unsigned quirk_poll_must_check_waiting_for_buffers:1; struct mutex *lock; -- 2.16.3