Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp2503496rdg; Mon, 16 Oct 2023 06:36:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEE3VPE1XGwNF9/mNOTE3ci7IptDm/ef67nGJlSENL2+JbC4SI6pqDanSbS8cB4NetYGj7i X-Received: by 2002:a05:6602:342a:b0:7a5:ab78:ad03 with SMTP id n42-20020a056602342a00b007a5ab78ad03mr22819165ioz.5.1697463403320; Mon, 16 Oct 2023 06:36:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697463403; cv=none; d=google.com; s=arc-20160816; b=K64o/75QJYoBbZTZqB/1fQ2JhhkQELDMoBLYs7sKB8lWJukCkeu73zAcVzR3e+Mn6o O3EAcA3lLy4OOiSSA1KlXBM9BbP3+utS+4vc7nf/+8wCP696DqDONXxie6DFCMSXLoX/ zuaymhfahP4tRdAH2srbQ3gIEanxZGif2DiEcFgmBM4iXmraYgKQc49RQtPSGdKGs/mY cU9kLeIBKhc9/flGGGlM5oWWjzpEgEeE03OPISmM2gH1q1fUbXGVp6OYGvV3uTqIrQ5Z /4IB9NmRao9ZKy7XAkoUPMjIoM3PuDRTF95CW+ppCAC4Zb4hJqIA3r6JCGx25Awd7TRJ Vkbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=zP1fnWFeYvyG1Xmjedh/abV8oTVaqv/c4x/J+KkRZ28=; fh=Nirk0gglgnJ4Df45w1lthK9VcGR8LmFSCyu5CYWNog0=; b=s82jJQuMe2d4+uuNDshTUicA6PbKHxVw0gsdlQHPj1hcqSxq/CuC28jM9v4b4qd54l 91HJw2iSgcVW1BCXBDPEsAQqPwYZ9AE03hPGfCVZo+vg2BvtSc6PeOSxB3XXrMcVsaKl E5kZ0wG8nyOWMgVOIKd0As/DmCocUeGd++QYqb/hjLATjRBLdYzyvFaxERNRgKYwBQOn 0A135qPsi1s7ahxW2rJwN0sMzYdWKCJODyl9dWlvZHW+HmQConzhhIKOkvgUVYCjTh+S elDloR20s2CZuvEJxQOQxufixWXZxvyF9qAd9Y3bHSwKRCOcUK2dOcCxZoNz5t9M0tLL p3Pg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=FrxoHnYk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id f18-20020a056a0022d200b00690ca3d66bbsi7003863pfj.262.2023.10.16.06.36.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 06:36:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=FrxoHnYk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id DE5AC80A4ADD; Mon, 16 Oct 2023 06:36:39 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233889AbjJPNgQ (ORCPT + 99 others); Mon, 16 Oct 2023 09:36:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233913AbjJPNfq (ORCPT ); Mon, 16 Oct 2023 09:35:46 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A245136; Mon, 16 Oct 2023 06:35:44 -0700 (PDT) Received: from localhost (89-26-75-29.dyn.cablelink.at [89.26.75.29]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sebastianfricke) by madras.collabora.co.uk (Postfix) with ESMTPSA id 56E4766071EF; Mon, 16 Oct 2023 14:35:42 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1697463342; bh=TznfC4TF12W8ScIql5iv7WR3cxstbuq3pTRFxtuJ+jA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=FrxoHnYktcz29ytK0yQxtJuylDb1WXgY2mbz2qhy/TUqunmGrD6m4jl9VgBPYnX4t ZYa9He71mfD2osZUfoN1o1dVHRGA+1g2us4NoWitlWsYB5O5k30oHPE5qhfJQpEz/1 Ig79kvBC1oXtddtrkoPMwqleom/HGGyM85O3eTgdmy/LtDl+vVRKZdbGtykktKOvC8 Gt0ZreKiCzJ5E02DVDOFavAM9KircMhEcOGP5MQDbp09bAysFP/C2KCxlmTB0lSU7W VaztqmNIS8pD3nBHoMowTmHEo1op3bal1x5/TLK9y8oGq1dl22YnLiBfAWBv6raNDo P7BxVe1l5OzEw== Date: Mon, 16 Oct 2023 15:35:39 +0200 From: Sebastian Fricke To: Hans Verkuil Cc: Krzysztof Kozlowski , NXP Linux Team , Conor Dooley , Mauro Carvalho Chehab , Jackson Lee , Sascha Hauer , Rob Herring , Pengutronix Kernel Team , Shawn Guo , Philipp Zabel , Nas Chung , Fabio Estevam , linux-media@vger.kernel.org, Tomasz Figa , linux-kernel@vger.kernel.org, Nicolas Dufresne , kernel@collabora.com, Robert Beckett , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Darren Etheridge Subject: Re: [PATCH v13 5/8] media: chips-media: wave5: Add the v4l2 layer Message-ID: <20231016133539.m3i5crlsknoidim3@basti-XPS-13-9310> References: <20230929-wave5_v13_media_master-v13-0-5ac60ccbf2ce@collabora.com> <20230929-wave5_v13_media_master-v13-5-5ac60ccbf2ce@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS 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]); Mon, 16 Oct 2023 06:36:40 -0700 (PDT) Hey Hans, On 16.10.2023 13:57, Hans Verkuil wrote: >Hi Sebastian, > >On 12/10/2023 13:01, Sebastian Fricke wrote: >> Add the decoder and encoder implementing the v4l2 >> API. This patch also adds the Makefile and the VIDEO_WAVE_VPU config >> >> Signed-off-by: Sebastian Fricke >> Signed-off-by: Nicolas Dufresne >> Signed-off-by: Deborah Brouwer >> Signed-off-by: Robert Beckett >> Signed-off-by: Dafna Hirschfeld >> Signed-off-by: Nas Chung >> --- >> drivers/media/platform/chips-media/Kconfig | 1 + >> drivers/media/platform/chips-media/Makefile | 1 + >> drivers/media/platform/chips-media/wave5/Kconfig | 12 + >> drivers/media/platform/chips-media/wave5/Makefile | 10 + >> .../platform/chips-media/wave5/wave5-helper.c | 213 +++ >> .../platform/chips-media/wave5/wave5-helper.h | 31 + >> .../platform/chips-media/wave5/wave5-vpu-dec.c | 1953 ++++++++++++++++++++ >> .../platform/chips-media/wave5/wave5-vpu-enc.c | 1794 ++++++++++++++++++ >> .../media/platform/chips-media/wave5/wave5-vpu.c | 291 +++ >> .../media/platform/chips-media/wave5/wave5-vpu.h | 83 + >> .../platform/chips-media/wave5/wave5-vpuapi.h | 2 - >> 11 files changed, 4389 insertions(+), 2 deletions(-) >> > > > >> +static int wave5_vpu_dec_create_bufs(struct file *file, void *priv, >> + struct v4l2_create_buffers *create) >> +{ >> + struct vpu_instance *inst = wave5_to_vpu_inst(priv); >> + struct v4l2_format *f = &create->format; >> + >> + /* Firmware does not support CREATE_BUFS for CAPTURE queues. */ >> + if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { >> + dev_dbg(inst->dev->dev, >> + "%s: VIDIOC_CREATE_BUFS not supported on CAPTURE queues.\n", >> + __func__); >> + return -EOPNOTSUPP; >> + } >> + >> + return v4l2_m2m_ioctl_create_bufs(file, priv, create); >> +} > >Regarding the EOPNOTSUPP discussion: I discussed this some more with >Nicolas on irc, and we wonder if it isn't better to just drop create_bufs >support for the wave5 decoder altogether. Is there any point in supporting >it for OUTPUT but not CAPTURE? > > > >> +static const struct v4l2_ioctl_ops wave5_vpu_dec_ioctl_ops = { >> + .vidioc_querycap = wave5_vpu_dec_querycap, >> + .vidioc_enum_framesizes = wave5_vpu_dec_enum_framesizes, >> + >> + .vidioc_enum_fmt_vid_cap = wave5_vpu_dec_enum_fmt_cap, >> + .vidioc_s_fmt_vid_cap_mplane = wave5_vpu_dec_s_fmt_cap, >> + .vidioc_g_fmt_vid_cap_mplane = wave5_vpu_dec_g_fmt_cap, >> + .vidioc_try_fmt_vid_cap_mplane = wave5_vpu_dec_try_fmt_cap, >> + >> + .vidioc_enum_fmt_vid_out = wave5_vpu_dec_enum_fmt_out, >> + .vidioc_s_fmt_vid_out_mplane = wave5_vpu_dec_s_fmt_out, >> + .vidioc_g_fmt_vid_out_mplane = wave5_vpu_g_fmt_out, >> + .vidioc_try_fmt_vid_out_mplane = wave5_vpu_dec_try_fmt_out, >> + >> + .vidioc_g_selection = wave5_vpu_dec_g_selection, >> + .vidioc_s_selection = wave5_vpu_dec_s_selection, >> + >> + .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs, >> + .vidioc_querybuf = v4l2_m2m_ioctl_querybuf, >> + .vidioc_create_bufs = wave5_vpu_dec_create_bufs, > >So this would just be dropped. > >> + .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, >> + .vidioc_qbuf = v4l2_m2m_ioctl_qbuf, >> + .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, >> + .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, >> + .vidioc_streamon = v4l2_m2m_ioctl_streamon, >> + .vidioc_streamoff = v4l2_m2m_ioctl_streamoff, >> + >> + .vidioc_try_decoder_cmd = v4l2_m2m_ioctl_try_decoder_cmd, >> + .vidioc_decoder_cmd = wave5_vpu_dec_decoder_cmd, >> + >> + .vidioc_subscribe_event = wave5_vpu_subscribe_event, >> + .vidioc_unsubscribe_event = v4l2_event_unsubscribe, >> +}; > >This also means there is no need to document the new EOPNOTSUPP error >code in VIDIOC_CREATE_BUFS, or to modify v4l2-compliance. > >You *do* need to add a comment somewhere explaining why you don't >support this ioctl. I think it would be best to do that right after >'.vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs,'. So, besides this issue would you judge the v4l2 layer of the driver to be ready? Do you want a reviewed by tag for it or would you take it like this as well? > >Regards, > > Hans Sincerly, Sebastian >_______________________________________________ >Kernel mailing list -- kernel@mailman.collabora.com >To unsubscribe send an email to kernel-leave@mailman.collabora.com