Received: by 2002:a05:7412:8d11:b0:fa:4934:9f with SMTP id bj17csp646048rdb; Mon, 15 Jan 2024 08:54:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IGD3Yh+WARBo9VaqZ8zrQFrnx8AZPsLr1ye9e9jRX4plxenf5KMMQDsX2bTWKTSZuBRtRkQ X-Received: by 2002:a05:6a20:2e26:b0:199:e728:3ccf with SMTP id be38-20020a056a202e2600b00199e7283ccfmr4718011pzb.62.1705337655854; Mon, 15 Jan 2024 08:54:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705337655; cv=none; d=google.com; s=arc-20160816; b=tbu4KrMikAkW6TIi2Ajk9dSJ24lVDa2RYkIrqnjAbp7OS4+ctt9eOfBwBrcbjNbrPP Ayia8A6+HEaKTntG4IAqCSgAG4l6LXG3EmTi3Aazr4jlYISGaCT4MMRSKZHtvHQxfeke 7wbsAk2KQrm12+B2LE1rBOPkeoxDsxWDnvXrAzPGl0nWZBGYsM8jvxWHA9ButHGw7AGU cgRX2txka4OhS0eq9QJryJgpDulcw6aTtWMQ4eyll69H9dGxjKl6rkFjathrq2E/wRTS ih1aP1kVwfC5B3Sd6Xt/dqh8DUbNyPW1fnwjSR4P+lLt1jT4uwdozG3gEhWwRKApkHCG SowA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc :to:content-language:subject:user-agent:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id; bh=VxlLeiWA0kNE6T1JaxLcGkWlxG2C+BORY1eG9hj2kzI=; fh=JA5CkwWQaCWbhBvBUXS2prPFrwCGT4l48Srp7tLe1bE=; b=PEM38pGOOJm866BWvy35kMUg6e5bXjB41ckPabW/ZtGyH3fqkrHfO00nv2SHtyTWBx Y7qgFCG/zCpMyNjLIT4MMDB/zP57up0y/zDc4lZD+5y+O/oRuZqkT7mVGP6zGBNRQWUP xjHKTqaQxqbtTfm++EApCEClwy/g9MwRd9x39+uEkaP9UQPeouAs5UhU+Kcpydmc0gU7 yTlvyfC+8I+kMJ1DvTHW88uJruQiYlLwMgBO60JHTjGgwVHJ6l1yIoeuYuGfp8vLQJya 4UqdSSHCnLr8n4Y8LCGk5PjVllK/NYrFDtrDTOp4JYEHKad+VQHt213p6uGar975dzgs QaSA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-26280-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-26280-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id z21-20020aa78895000000b006daab53f6bdsi9498333pfe.298.2024.01.15.08.54.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jan 2024 08:54:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-26280-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-26280-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-26280-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 1F5D2B21B7F for ; Mon, 15 Jan 2024 16:54:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6B27F17C6C; Mon, 15 Jan 2024 16:53:56 +0000 (UTC) Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEE2D17BCF; Mon, 15 Jan 2024 16:53:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2B9B3C433C7; Mon, 15 Jan 2024 16:53:53 +0000 (UTC) Message-ID: Date: Mon, 15 Jan 2024 17:53:52 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v16 8/8] media: test-drivers: Use helper for DELETE_BUFS ioctl Content-Language: en-US, nl To: Benjamin Gaignard , mchehab@kernel.org Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, kernel@collabora.com References: <20231215090813.15610-1-benjamin.gaignard@collabora.com> <20231215090813.15610-9-benjamin.gaignard@collabora.com> From: Hans Verkuil Autocrypt: addr=hverkuil@xs4all.nl; keydata= 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 In-Reply-To: <20231215090813.15610-9-benjamin.gaignard@collabora.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 15/12/2023 10:08, Benjamin Gaignard wrote: > Allow test drivers to use DELETE_BUFS by adding vb2_ioctl_delete_bufs() helper. > > Signed-off-by: Benjamin Gaignard > --- > drivers/media/test-drivers/vicodec/vicodec-core.c | 2 ++ > drivers/media/test-drivers/vimc/vimc-capture.c | 2 ++ > drivers/media/test-drivers/visl/visl-video.c | 2 ++ > drivers/media/test-drivers/vivid/vivid-core.c | 13 ++++++++++--- You patched vim2m.c in the previous patch. I'd say that belong in this one instead. > 4 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/drivers/media/test-drivers/vicodec/vicodec-core.c > index e13f5452b927..12956d807e05 100644 > --- a/drivers/media/test-drivers/vicodec/vicodec-core.c > +++ b/drivers/media/test-drivers/vicodec/vicodec-core.c > @@ -1345,6 +1345,7 @@ static const struct v4l2_ioctl_ops vicodec_ioctl_ops = { > .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, > .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, > .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, > + .vidioc_delete_bufs = v4l2_m2m_ioctl_delete_bufs, > > .vidioc_streamon = v4l2_m2m_ioctl_streamon, > .vidioc_streamoff = v4l2_m2m_ioctl_streamoff, > @@ -1731,6 +1732,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq, > dst_vq->mem_ops = &vb2_vmalloc_memops; > dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; > dst_vq->lock = src_vq->lock; > + dst_vq->supports_delete_bufs = true; Same question as in the previous patch: why just for dst_vq? It's also why I am skeptical of the cap flag, I think that if you support this ioctl in an m2m device, then support this for both queues. In the rare case that that can't be done, then you need to make your own ioctl function that does the queue check first before calling v4l2_m2m_ioctl_delete_bufs(). > > return vb2_queue_init(dst_vq); > } > diff --git a/drivers/media/test-drivers/vimc/vimc-capture.c b/drivers/media/test-drivers/vimc/vimc-capture.c > index 97693561f1e4..a2078d9c2721 100644 > --- a/drivers/media/test-drivers/vimc/vimc-capture.c > +++ b/drivers/media/test-drivers/vimc/vimc-capture.c > @@ -221,6 +221,7 @@ static const struct v4l2_ioctl_ops vimc_capture_ioctl_ops = { > .vidioc_expbuf = vb2_ioctl_expbuf, > .vidioc_streamon = vb2_ioctl_streamon, > .vidioc_streamoff = vb2_ioctl_streamoff, > + .vidioc_delete_bufs = vb2_ioctl_delete_bufs, > }; > > static void vimc_capture_return_all_buffers(struct vimc_capture_device *vcapture, > @@ -435,6 +436,7 @@ static struct vimc_ent_device *vimc_capture_add(struct vimc_device *vimc, > q->min_reqbufs_allocation = 2; > q->lock = &vcapture->lock; > q->dev = v4l2_dev->dev; > + q->supports_delete_bufs = true; > > ret = vb2_queue_init(q); > if (ret) { > diff --git a/drivers/media/test-drivers/visl/visl-video.c b/drivers/media/test-drivers/visl/visl-video.c > index b9a4b44bd0ed..939c14107700 100644 > --- a/drivers/media/test-drivers/visl/visl-video.c > +++ b/drivers/media/test-drivers/visl/visl-video.c > @@ -539,6 +539,7 @@ const struct v4l2_ioctl_ops visl_ioctl_ops = { > .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, > .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, > .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, > + .vidioc_delete_bufs = v4l2_m2m_ioctl_delete_bufs, > > .vidioc_streamon = v4l2_m2m_ioctl_streamon, > .vidioc_streamoff = v4l2_m2m_ioctl_streamoff, > @@ -749,6 +750,7 @@ int visl_queue_init(void *priv, struct vb2_queue *src_vq, > dst_vq->mem_ops = &vb2_vmalloc_memops; > dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; > dst_vq->lock = &ctx->vb_mutex; > + dst_vq->supports_delete_bufs = true; > > return vb2_queue_init(dst_vq); > } > diff --git a/drivers/media/test-drivers/vivid/vivid-core.c b/drivers/media/test-drivers/vivid/vivid-core.c > index 11b8520d9f57..ad37babb54a2 100644 > --- a/drivers/media/test-drivers/vivid/vivid-core.c > +++ b/drivers/media/test-drivers/vivid/vivid-core.c > @@ -769,6 +769,7 @@ static const struct v4l2_ioctl_ops vivid_ioctl_ops = { > .vidioc_expbuf = vb2_ioctl_expbuf, > .vidioc_streamon = vb2_ioctl_streamon, > .vidioc_streamoff = vb2_ioctl_streamoff, > + .vidioc_delete_bufs = vb2_ioctl_delete_bufs, > > .vidioc_enum_input = vivid_enum_input, > .vidioc_g_input = vivid_g_input, > @@ -883,12 +884,18 @@ static int vivid_create_queue(struct vivid_dev *dev, > * PAGE_SHIFT > 12, but then max_num_buffers will be clamped by > * videobuf2-core.c to MAX_BUFFER_INDEX. > */ > - if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) > + if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { > q->max_num_buffers = 64; > - if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) > + q->supports_delete_bufs = true; > + } > + if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) { > q->max_num_buffers = 1024; > - if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE) > + q->supports_delete_bufs = true; > + } > + if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE) { > q->max_num_buffers = 32768; > + q->supports_delete_bufs = true; > + } > > if (allocators[dev->inst] != 1) > q->io_modes |= VB2_USERPTR; Regards, Hans