From: Greg KH <gregkh@linuxfoundation.org>
To: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>,
peng.fan@nxp.com, kernel@collabora.com,
devel@driverdev.osuosl.org, Anson.Huang@nxp.com, krzk@kernel.org,
linux-rockchip@lists.infradead.org, wens@csie.org,
linux-imx@nxp.com, linux-media@vger.kernel.org,
devicetree@vger.kernel.org, kernel@pengutronix.de,
s.hauer@pengutronix.de, mripard@kernel.org, robh+dt@kernel.org,
mchehab@kernel.org, ezequiel@collabora.com,
linux-arm-kernel@lists.infradead.org, aisheng.dong@nxp.com,
jernej.skrabec@siol.net, adrian.ratiu@collabora.com,
linux-kernel@vger.kernel.org, paul.kocialkowski@bootlin.com,
p.zabel@pengutronix.de, shawnguo@kernel.org,
shengjiu.wang@nxp.com
Subject: Re: [PATCH v1 00/18] Add HANTRO G2/HEVC decoder support for IMX8MQ
Date: Wed, 17 Feb 2021 10:23:56 +0100 [thread overview]
Message-ID: <YCzgrGr8JpUYcQ+L@kroah.com> (raw)
In-Reply-To: <63b62e9e-b95f-59a4-b830-c56d2cb9e4f8@xs4all.nl>
On Wed, Feb 17, 2021 at 10:10:35AM +0100, Hans Verkuil wrote:
> On 17/02/2021 09:36, Greg KH wrote:
> > On Wed, Feb 17, 2021 at 09:28:09AM +0100, Benjamin Gaignard wrote:
> >>
> >> Le 17/02/2021 à 09:08, Greg KH a écrit :
> >>> On Wed, Feb 17, 2021 at 09:02:48AM +0100, Benjamin Gaignard wrote:
> >>>> The IMX8MQ got two VPUs but until now only G1 has been enabled.
> >>>> This series aim to add the second VPU (aka G2) and provide basic
> >>>> HEVC decoding support.
> >>> Why are you adding this directly to drivers/staging/media/ and not
> >>> drivers/media/? Why can't this just go to the main location and not
> >>> live in staging?
> >>
> >> G2/HEVC is added inside the already exiting Hantro driver, it is "just"
> >> an other codec from Hantro driver point of view.
> >> In addition of that v4l2-hevc uAPI is still unstable.
> >> One goal of this series is to have one more consumer of this v4l2-hevc
> >> uAPI so maybe we can claim it to be stable enough to move away from staging
> >> and then do the same for Hantro driver. That would be a great achievement !
> >
> > I know I do not like seeing new additions/features/whatever being added
> > to staging drivers as that encourages people to do new stuff on them
> > without doing the real work needed to get them out of staging.
>
> In order to support a specific codec (MPEG-2, H.264, HEVC, VP8, etc.) for
> stateless codec hardware like the hantro, V4L2 controls need to be defined.
> The contents of these controls is derived directly from the underlying codec
> standards, but it is quite difficult to get this right with the first attempt,
> since these standards are very complex.
>
> So we went for the strategy of keeping these drivers in staging to make it
> easy to work on, while keeping the APIs for each codec private (i.e., they are
> not exposed in include/uapi/linux).
>
> Once we have sufficient confidence in the API for a specific codec we move
> it to uapi and thus fix the API. We also renumber the control IDs at that
> time to avoid any confusion between the staging version and the final version.
>
> We did that for H.264 and I hope we can soon do the same for MPEG-2 and VP8.
>
> HEVC is definitely not ready for that yet.
>
> The key phrase is 'sufficient confidence': one requirement is that it is supported
> by at least two drivers to be reasonably certain the API doesn't contain any HW
> specific stuff, and it passes test suites and review by codec experts.
>
> All this is actively being worked on, so this is very much alive, but it is
> complex and time consuming.
>
> > So what is preventing the existing driver from getting out of staging
> > now?
>
> Once MPEG-2 and VP8 are finalized it is probably time to move these drivers
> out of staging, while still keeping the HEVC API part private.
>
> >
> > And how are you all creating new userspace apis for staging drivers to
> > the v4l layer? What happens when you export something new and then
> > userspace starts to rely on it and then you change it?
>
> Nothing is exported. So if userspace want to use it they have to manually
> copy headers from include/media to their application.
>
> >
> > Anyway, the media staging drivers are on their own, I don't touch them,
> > it just feels odd to me...
>
> It's an unusual situation. But putting the drivers in staging and keeping
> the codec API headers private turns out to be the most effective way to
> develop this.
Ah, ok, thanks for the explaination, makes sense.
good luck!
greg k-h
next prev parent reply other threads:[~2021-02-17 9:24 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-17 8:02 [PATCH v1 00/18] Add HANTRO G2/HEVC decoder support for IMX8MQ Benjamin Gaignard
2021-02-17 8:02 ` [PATCH v1 01/18] include: media: hevc: Add scaling and decode params controls Benjamin Gaignard
2021-02-17 8:02 ` [PATCH v1 02/18] media: hantro: Define HEVC codec profiles and supported features Benjamin Gaignard
2021-02-17 19:31 ` Ezequiel Garcia
2021-02-17 8:02 ` [PATCH v1 03/18] arm64: dts: imx8mq-evk: add reserve memory node for CMA region Benjamin Gaignard
2021-02-17 19:39 ` Ezequiel Garcia
2021-02-18 10:15 ` Lucas Stach
2021-02-18 10:45 ` Dan Carpenter
2021-02-17 8:02 ` [PATCH v1 04/18] media: hevc: add structures for hevc codec Benjamin Gaignard
2021-02-17 19:54 ` Ezequiel Garcia
2021-02-17 8:02 ` [PATCH v1 05/18] media: controls: Add control for HEVC codec Benjamin Gaignard
2021-02-17 19:58 ` Ezequiel Garcia
2021-02-17 8:02 ` [PATCH v1 06/18] media: hantro: Make sure that ctx->codex_ops is set Benjamin Gaignard
2021-02-17 20:11 ` Ezequiel Garcia
2021-02-18 10:53 ` Dan Carpenter
2021-02-17 8:02 ` [PATCH v1 07/18] media: hantro: Add a field to distinguish the hardware versions Benjamin Gaignard
2021-02-17 20:15 ` Ezequiel Garcia
2021-02-18 10:55 ` Dan Carpenter
2021-02-17 8:02 ` [PATCH v1 08/18] media: hantro: Add HEVC structures Benjamin Gaignard
2021-02-17 8:02 ` [PATCH v1 09/18] media: hantro: move hantro_needs_postproc function Benjamin Gaignard
2021-02-18 10:59 ` Dan Carpenter
2021-02-17 8:02 ` [PATCH v1 10/18] media: hantro: Add helper functions for buffer information Benjamin Gaignard
2021-02-17 20:31 ` Ezequiel Garcia
2021-02-17 8:02 ` [PATCH v1 11/18] media: hantro: Add helper function for auxiliary buffers allocation Benjamin Gaignard
2021-02-17 20:42 ` Ezequiel Garcia
2021-02-18 14:51 ` Benjamin Gaignard
2021-02-17 8:03 ` [PATCH v1 12/18] media: uapi: Add a control for HANTRO driver Benjamin Gaignard
2021-02-17 8:03 ` [PATCH v1 13/18] media: hantro: Introduce G2/HEVC decoder Benjamin Gaignard
2021-02-17 20:45 ` Ezequiel Garcia
2021-02-18 10:43 ` Benjamin Gaignard
2021-02-18 11:47 ` Dan Carpenter
2021-02-17 8:03 ` [PATCH v1 14/18] media: hantro: add G2 support to postproc Benjamin Gaignard
2021-02-17 8:03 ` [PATCH v1 15/18] media: hantro: handle V4L2_PIX_FMT_HEVC_SLICE control Benjamin Gaignard
2021-02-17 20:13 ` Ezequiel Garcia
2021-02-17 8:03 ` [PATCH v1 16/18] media: hantro: IMX8M: add variant for G2/HEVC codec Benjamin Gaignard
2021-02-17 8:03 ` [PATCH v1 17/18] dt-bindings: media: nxp,imx8mq-vpu: Update bindings Benjamin Gaignard
2021-02-17 22:48 ` Rob Herring
2021-02-18 14:48 ` Benjamin Gaignard
2021-02-17 8:03 ` [PATCH v1 18/18] arm64: dts: imx8mq: Add node to G2 hardware Benjamin Gaignard
2021-02-17 20:43 ` Ezequiel Garcia
2021-02-18 15:47 ` Benjamin Gaignard
2021-02-17 8:08 ` [PATCH v1 00/18] Add HANTRO G2/HEVC decoder support for IMX8MQ Greg KH
2021-02-17 8:28 ` Benjamin Gaignard
2021-02-17 8:36 ` Greg KH
2021-02-17 9:10 ` Hans Verkuil
2021-02-17 9:23 ` Greg KH [this message]
2021-02-17 8:38 ` Paul Kocialkowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YCzgrGr8JpUYcQ+L@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=Anson.Huang@nxp.com \
--cc=adrian.ratiu@collabora.com \
--cc=aisheng.dong@nxp.com \
--cc=benjamin.gaignard@collabora.com \
--cc=devel@driverdev.osuosl.org \
--cc=devicetree@vger.kernel.org \
--cc=ezequiel@collabora.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jernej.skrabec@siol.net \
--cc=kernel@collabora.com \
--cc=kernel@pengutronix.de \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=mripard@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=paul.kocialkowski@bootlin.com \
--cc=peng.fan@nxp.com \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=shengjiu.wang@nxp.com \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).