From patchwork Wed Nov 15 17:10:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Gustavo F. Padovan" X-Patchwork-Id: 45474 Received: from vger.kernel.org ([209.132.180.67]) by www.linuxtv.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eF1Gk-00072B-0a; Wed, 15 Nov 2017 17:14:34 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933293AbdKORLd (ORCPT + 1 other); Wed, 15 Nov 2017 12:11:33 -0500 Received: from mail-qt0-f193.google.com ([209.85.216.193]:54299 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933281AbdKORLW (ORCPT ); Wed, 15 Nov 2017 12:11:22 -0500 Received: by mail-qt0-f193.google.com with SMTP id h42so14144393qtk.11; Wed, 15 Nov 2017 09:11:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sBp41L0CWjyG+pDRfXdtiJZ2FsrrFAyw3ig1XYMywxo=; b=lbT2CWURg5pr9+veOnbqpJmWNAixaPNySlpnNhSIZ47hWxX0IIrIcypkBMMvBM31vo kX1SFDoGZam8+abqL+yqjaoGHMWB4nGkflBz4qKVzoR60KdwAynqXsm3I6XyuordgXpF YTTd5JaDDlPbfzBDJxJqlhoi3AkEZdyBgMobSEKuz032opnumXHKVQRSEAFc8Effabje f9Zd//MdOVIIKG174t2wXJF+7kvtB+6GAuew1g6av7UiLaRHf1aRGsgXtK800ZNw3wov Byn7fzidPt7icmR2/X0x9jaON/plNg3NMbdghEX9KcKiaY0aRWxOtN6PSzgvjgDzpsTn F6Fg== X-Gm-Message-State: AJaThX6K/QYz9uzIOdef4zKRYZeBSSXT2aQdLsKHaVV6IJ8Uo2D787Dj fSn+1n+D50cVWlZ6dwZA52Xpzpek X-Google-Smtp-Source: AGs4zMZDu/osNs8gIA7BZibfQJQYEMI7f2+EYbYLmzxfkHBTXVha96Ml0BzUI79FBe7mkLRuFRE5aQ== X-Received: by 10.237.35.207 with SMTP id k15mr7248839qtc.95.1510765880938; Wed, 15 Nov 2017 09:11:20 -0800 (PST) Received: from localhost.localdomain ([179.110.36.75]) by smtp.gmail.com with ESMTPSA id p85sm15211633qkp.94.2017.11.15.09.11.17 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 15 Nov 2017 09:11:20 -0800 (PST) From: Gustavo Padovan To: linux-media@vger.kernel.org Cc: Hans Verkuil , Mauro Carvalho Chehab , Shuah Khan , Pawel Osciak , Alexandre Courbot , Sakari Ailus , Brian Starkey , Thierry Escande , linux-kernel@vger.kernel.org, Gustavo Padovan Subject: [RFC v5 04/11] [media] vivid: mark vivid queues as ordered_in_driver Date: Wed, 15 Nov 2017 15:10:50 -0200 Message-Id: <20171115171057.17340-5-gustavo@padovan.org> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171115171057.17340-1-gustavo@padovan.org> References: <20171115171057.17340-1-gustavo@padovan.org> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org From: Gustavo Padovan ordered_in_driver is used to optimize the use of explicit synchronization when the driver guarantees ordering we can use the same fence context for out-fences. In this case userspace will know that the buffers won't be signaling out of order. vivid queues are already ordered by default so no changes are needed. v2: rename 'ordered' to 'ordered_in_driver' to avoid confusion. Signed-off-by: Gustavo Padovan --- drivers/media/platform/vivid/vivid-core.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c index f19391fa2d6a..1b830ebe1cd8 100644 --- a/drivers/media/platform/vivid/vivid-core.c +++ b/drivers/media/platform/vivid/vivid-core.c @@ -1068,6 +1068,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE : V4L2_BUF_TYPE_VIDEO_CAPTURE; q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; + q->ordered_in_driver = 1; q->drv_priv = dev; q->buf_struct_size = sizeof(struct vivid_buffer); q->ops = &vivid_vid_cap_qops; @@ -1088,6 +1089,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE : V4L2_BUF_TYPE_VIDEO_OUTPUT; q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_WRITE; + q->ordered_in_driver = 1; q->drv_priv = dev; q->buf_struct_size = sizeof(struct vivid_buffer); q->ops = &vivid_vid_out_qops; @@ -1108,6 +1110,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) q->type = dev->has_raw_vbi_cap ? V4L2_BUF_TYPE_VBI_CAPTURE : V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; + q->ordered_in_driver = 1; q->drv_priv = dev; q->buf_struct_size = sizeof(struct vivid_buffer); q->ops = &vivid_vbi_cap_qops; @@ -1128,6 +1131,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) q->type = dev->has_raw_vbi_out ? V4L2_BUF_TYPE_VBI_OUTPUT : V4L2_BUF_TYPE_SLICED_VBI_OUTPUT; q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_WRITE; + q->ordered_in_driver = 1; q->drv_priv = dev; q->buf_struct_size = sizeof(struct vivid_buffer); q->ops = &vivid_vbi_out_qops; @@ -1147,6 +1151,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) q = &dev->vb_sdr_cap_q; q->type = V4L2_BUF_TYPE_SDR_CAPTURE; q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; + q->ordered_in_driver = 1; q->drv_priv = dev; q->buf_struct_size = sizeof(struct vivid_buffer); q->ops = &vivid_sdr_cap_qops;