Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp4337679rdh; Tue, 28 Nov 2023 20:25:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IEjibXzoUHgculQgYi+OP4btwjU4Xnq5pA5YNn7833/YVlWdbMJ7CJRb0ZpDfOAFTfCrvbG X-Received: by 2002:a05:6a21:3283:b0:18b:246a:d43d with SMTP id yt3-20020a056a21328300b0018b246ad43dmr23236689pzb.15.1701231958820; Tue, 28 Nov 2023 20:25:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701231958; cv=none; d=google.com; s=arc-20160816; b=K3NXnolCcttwQ7ZN4V9TaM60RjsuD3taRq/8w96p/RXFyx8F6Nzt4e5NDOK+47i0By YZOrPOFiuTB5V4BD68GnAKHV1oDdVz7TQKlTmV7B2bX73OOeEsfrkH+flp6eXvNL1dCF +p3jZ8T5OkZ1+IXSR/bQyVg6DF5WiL45c3cv7RIHbmJsT682+zf3q+Pm+0nYI0rujQO0 4FrNnP+lUMaIrg+uUuWPCi2ptZCl96gKi/hjx7lR86mIhrrZufKwxnHt2eorEiFz+Ez+ 4dCwbJYyEtQv0zMHZhU0+FfBq/v6gV8fC3lPvut46yGdFP2tfhurTL1fAqdoZJNPniH/ AvGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=NZzuVjJtlnAafrGnIlhuyzTMjINdeQbe2IGSLVE2qCI=; fh=w9oPBgaL+IYPwodjlaPKM6fAfky5tLwrjgcZuVS9w6s=; b=godQTof5X9b/rS48HdbsJnp9WYwxZX5OB6+lgXUyk3HhOVx5XGq6pt584MyquD9SK+ pUMxK3Amp5faaXccm24E7bABUkuY4Tl3VjTfEklPiaq/iAGFG3gCO0A7aw7DBezW2IE1 Cl77l1d5sqPnX5+d4ajBQukd2WsVpWR7VFUULAHReStYnnwn/dnDmaaoe6cbTvQWUonv 5f0LjqJpRRpnh1Aexy5DzbnI906BHgbKqwyflc6nmcown4r2HuZ/RQlU0krmoT21eJk5 /xhpde50cz/GMITBCkgDjZ/CM5OoLdvJvT5Qq7Ql+KjU3cAsVX7CByi5/i6426nM3uJE upNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=SldNVqeh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id e25-20020a631e19000000b005c1eadbacb3si13519963pge.104.2023.11.28.20.25.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 20:25:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=SldNVqeh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id CA4D980A5F2E; Tue, 28 Nov 2023 20:25:53 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376899AbjK2EZh (ORCPT + 99 others); Tue, 28 Nov 2023 23:25:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230198AbjK2EZg (ORCPT ); Tue, 28 Nov 2023 23:25:36 -0500 Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE35C10E7 for ; Tue, 28 Nov 2023 20:25:40 -0800 (PST) Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-54b0310f536so946858a12.0 for ; Tue, 28 Nov 2023 20:25:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1701231939; x=1701836739; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=NZzuVjJtlnAafrGnIlhuyzTMjINdeQbe2IGSLVE2qCI=; b=SldNVqehB3u/7rwu/Zl3mGdxyFW6LcP14mq+S7/3PqVBJ8r+AE+nLmeHGmSlHuEA/U fUda3JadQu75PvGkcZ9iYCUfYlugjYaOKrR7cAY+vhFTDkWWbw1zFTLaJS/bAWor7qHB xoZ+DhKpadZRKJvF+29SGOARf36QOceWwKpQc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701231939; x=1701836739; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NZzuVjJtlnAafrGnIlhuyzTMjINdeQbe2IGSLVE2qCI=; b=J/Fxm1r16ahKlXI7m67bI9+Vx8wjv+IsvYX4hyOy1lRNz8i9QaMK85zlf6uePjPkF4 mEhiy3H64y3QBYN9WJXlQtsPz3eJCHTdT8Fk3kR7LL/EzHzE/zcfE9H4yTyrWY0qADJT EuvieRIGqzSEfa6lq9aQR9BWT7I5kz1fW4lVvW0mdcXRlrMJY7yCTbqqrOJM0hMWpvey TN2/x78KXdul5fwGTnAUB2FLzjG93VzX8NNZvF6U+oy2bk+jtA3NbPdjWZnz5xPmfIuj 1G9qd2mNvRsu1XUYLL3exFi6QxrTpoRYYMforZXDhymM3QeRid+HhNJ6PghtCKyyBpZy ZctQ== X-Gm-Message-State: AOJu0YxtET+DJ1mksmLDYE3YFnYve3wEMdjvBJSOIXofxGlsDL9gp8i8 of270z9hF1snIzxMkQdd4MQ4b1Q6c8I1H6ah5aW36NCZ X-Received: by 2002:aa7:c045:0:b0:54b:5007:9a12 with SMTP id k5-20020aa7c045000000b0054b50079a12mr8060851edo.10.1701231939264; Tue, 28 Nov 2023 20:25:39 -0800 (PST) Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com. [209.85.218.41]) by smtp.gmail.com with ESMTPSA id b9-20020a056402350900b0054b7e312b97sm2351592edd.38.2023.11.28.20.25.39 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Nov 2023 20:25:39 -0800 (PST) Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-a0064353af8so96000166b.0 for ; Tue, 28 Nov 2023 20:25:39 -0800 (PST) X-Received: by 2002:adf:f10d:0:b0:332:cae1:dd5 with SMTP id r13-20020adff10d000000b00332cae10dd5mr13790346wro.34.1701231450791; Tue, 28 Nov 2023 20:17:30 -0800 (PST) MIME-Version: 1.0 References: <20231127165454.166373-1-benjamin.gaignard@collabora.com> <20231127165454.166373-8-benjamin.gaignard@collabora.com> <20231127170700.GC31314@pendragon.ideasonboard.com> <6fa1ec09-3e30-475e-9718-29d23586753e@collabora.com> <995eb6c2-cc7f-4217-bc37-4ab1a32f36ee@collabora.com> In-Reply-To: <995eb6c2-cc7f-4217-bc37-4ab1a32f36ee@collabora.com> From: Tomasz Figa Date: Wed, 29 Nov 2023 13:17:09 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 07/55] media: imx8-isi: Stop abusing of min_buffers_needed field To: Benjamin Gaignard Cc: Laurent Pinchart , hverkuil@xs4all.nl, mchehab@kernel.org, m.szyprowski@samsung.com, matt.ranostay@konsulko.com, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-staging@lists.linux.dev, kernel@collabora.com, Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 28 Nov 2023 20:25:54 -0800 (PST) On Tue, Nov 28, 2023 at 7:26=E2=80=AFPM Benjamin Gaignard wrote: > > > Le 28/11/2023 =C3=A0 10:35, Tomasz Figa a =C3=A9crit : > > On Tue, Nov 28, 2023 at 6:31=E2=80=AFPM Benjamin Gaignard > > wrote: > >> > >> Le 27/11/2023 =C3=A0 18:07, Laurent Pinchart a =C3=A9crit : > >>> Hi Benjamin, > >>> > >>> Thank you for the patch. > >>> > >>> On Mon, Nov 27, 2023 at 05:54:06PM +0100, Benjamin Gaignard wrote: > >>>> 'min_buffers_needed' is suppose to be used to indicate the number > >>>> of buffers needed by DMA engine to start streaming. > >>>> imx8-isi driver doesn't use DMA engine and just want to specify > >>> What do you mean, "doesn't use DMA engine" ? The ISI surely has DMA > >>> engines :-) > >> I have done assumption on drivers given if they use or dma_* functions= . > > I suspect the use of vb2_dma_sg_plane_desc() and > > vb2_dma_contig_plane_dma_addr() may be more correlated to whether > > there is a DMA involved or not. Usually V4L2 drivers don't really have > > to deal with the DMA API explicitly, because the vb2 framework handles > > most of the work. > > Unfortunately isn't not true either, for example verisilicon driver use > these function but doesn't need DMA engine. That sounds weird. Why would a driver that doesn't have a DMA engine need to obtain a scatterlist or the DMA address of the buffer? > I haven't found yet a 100% criteria to decide if driver use or not DMA en= gine > so I plan to fix case by case given maintainers remarks. Yeah, there probably wouldn't be a way that would give one a 100% certainty, although I'd still insist that the two functions I mentioned should be close to that. Of course a driver can use those functions for some queues, while other queues would be pure software queues, e.g. for some metadata - a simple grep is not enough. Is that perhaps the case for the verisilicon driver? Best regards, Tomasz > > Regards, > Benjamin > > > > > Best regards, > > Tomasz > > > >> I have considers that all PCI drivers are using DMA engine and > >> I don't know the design for each drivers so I hope to get this informa= tion > >> from maintainers and fix that in v2. > >> If imx8-isi driver needs a minimum number of buffers before start stre= aming > >> I will do a v2 and use min_dma_buffers_needed instead. > >> > >> Regards, > >> Benjamin > >> > >>>> the minimum number of buffers to allocate when calling VIDIOC_REQBUF= S. > >>>> That 'min_reqbufs_allocation' field purpose so use it. > >>>> > >>>> Signed-off-by: Benjamin Gaignard > >>>> CC: Laurent Pinchart > >>>> CC: Mauro Carvalho Chehab > >>>> CC: Shawn Guo > >>>> CC: Sascha Hauer > >>>> CC: Pengutronix Kernel Team > >>>> CC: Fabio Estevam > >>>> CC: NXP Linux Team > >>>> --- > >>>> drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c | 2 +- > >>>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>>> > >>>> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c b/= drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c > >>>> index 49bca2b01cc6..81673ff9084b 100644 > >>>> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c > >>>> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c > >>>> @@ -1453,7 +1453,7 @@ int mxc_isi_video_register(struct mxc_isi_pipe= *pipe, > >>>> q->mem_ops =3D &vb2_dma_contig_memops; > >>>> q->buf_struct_size =3D sizeof(struct mxc_isi_buffer); > >>>> q->timestamp_flags =3D V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; > >>>> - q->min_buffers_needed =3D 2; > >>>> + q->min_reqbufs_allocation =3D 2; > >>>> q->lock =3D &video->lock; > >>>> q->dev =3D pipe->isi->dev; > >>>>