Received: by 10.192.165.148 with SMTP id m20csp460550imm; Fri, 4 May 2018 13:09:18 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoZhmRHuj8eQMhDRj5YGWotw5tmQ2GDlNW0EcgyRaccC9z8wowYnglj1JnyLTRV5e6Aadfl X-Received: by 2002:a63:3ec9:: with SMTP id l192-v6mr23248123pga.318.1525464558100; Fri, 04 May 2018 13:09:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525464558; cv=none; d=google.com; s=arc-20160816; b=by4ccVWySsay1znZCkBMpHqWOFAQ0SqOl7UtlsoCHpASeuNsVQivryYO5pH0wMzLO5 3T6kkmifdDi/m76DFo/q0X0g7OjbIBzeXjF1xnJgzGheB/Snz6JtsHMOs13/hD3lKsPW hHXGgyI//YGBpPPub1J68/O4pH1qFrDob3s24kxUQA+oVQ07xZK4Vcg2QehUGU7+vvgI NDXn2l/LyOES6XLRJC+C045szLzBIDvxPWvoSukTZGSHhDDYbABagFMVpVFaAZceRPrz jK1GYIOCI6H9a812Sdj4cmtS+s+H6JQxJMrWnHevukJgp+Ooza7pQMwqShtN8B3DQfHS G75w== 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=O48KYBdAkk2mJZvrmzMiGyWyQc3KlOnndd/QEeM6ZOU=; b=BLIaahdUjrAh/G+8vSZKxz2in29GkRXuTFf59t6Yk7SGSmGs/B+6fNIe3wcHS0Nfma 0ohTyvtclBIKf5Q268tR2464ZlXXkUJUF/Zfjo5lxZ7P3TnBo77TMugtfY9DWNYgW1mi 5X3Zrl+ACpDmAGyoUe9CHw5/Ge9TgVqiq4uHouP2Q66bnJEouTs3qWeanULRG/sFoZ5D KcAsyIH07/gOmQDOP+8xAQy7opVWBga4Jxyxb8c18CIQqxZvpzASV70fn6WG8PswA5t7 qb/XRHrTI9s5A0nzFu4j07If2gaHwAhvuKl3mEY4D95wKdEmKSLpBZX3C5PqiXeGhOIV 1Mlg== 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 o1-v6si15506996plk.577.2018.05.04.13.09.03; Fri, 04 May 2018 13:09:18 -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 S1752114AbeEDUIj (ORCPT + 99 others); Fri, 4 May 2018 16:08:39 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:54152 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751522AbeEDUIe (ORCPT ); Fri, 4 May 2018 16:08:34 -0400 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: ezequiel) with ESMTPSA id C52B6286551 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 14/15] v4l: Add V4L2_CAP_FENCES to drivers Date: Fri, 4 May 2018 17:06:11 -0300 Message-Id: <20180504200612.8763-15-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 Drivers that use videobuf2 are capable of using fences and should report that to userspace. v9: Add in the core. Signed-off-by: Gustavo Padovan Signed-off-by: Ezequiel Garcia --- drivers/media/v4l2-core/v4l2-ioctl.c | 8 ++++++++ include/media/v4l2-fh.h | 2 -- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c index f75ad954a6f2..2ae527ef0bc7 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1002,12 +1002,20 @@ static int v4l_querycap(const struct v4l2_ioctl_ops *ops, { struct v4l2_capability *cap = (struct v4l2_capability *)arg; struct video_device *vfd = video_devdata(file); + struct v4l2_fh *vfh = + test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) ? fh : NULL; int ret; cap->version = LINUX_VERSION_CODE; cap->device_caps = vfd->device_caps; cap->capabilities = vfd->device_caps | V4L2_CAP_DEVICE_CAPS; + /* If it has a queue or a m2m context, then the + * device supports fence synchronization. + */ + if (vfd->queue || (vfh && vfh->m2m_ctx)) + cap->device_caps |= V4L2_CAP_FENCES; + ret = ops->vidioc_querycap(file, fh, cap); cap->capabilities |= V4L2_CAP_EXT_PIX_FORMAT; diff --git a/include/media/v4l2-fh.h b/include/media/v4l2-fh.h index ea73fef8bdc0..e993ddc06991 100644 --- a/include/media/v4l2-fh.h +++ b/include/media/v4l2-fh.h @@ -57,9 +57,7 @@ struct v4l2_fh { unsigned int navailable; u32 sequence; -#if IS_ENABLED(CONFIG_V4L2_MEM2MEM_DEV) struct v4l2_m2m_ctx *m2m_ctx; -#endif }; /** -- 2.16.3