Re: [PATCH] media: cedrus: Update TODO with future rework plans

From: Nicolas Dufresne
Date: Tue Nov 07 2023 - 15:35:42 EST


Le mardi 07 novembre 2023 à 21:06 +0100, Paul Kocialkowski a écrit :
> The current TODO list of the cedrus driver is now outdated as most of the points
> it mentions were already tackled. In addition it is no longer considered
> relevant to wait for a stateless encoder driver to move it out of staging.
> The hantro/verisilicon driver was already unstaged without this condition.
>
> However the driver suffers from a bad initial design that showed to be very
> limiting. It was also not a very good fit for a video codec driver either.
>
> Since a rework of the driver was already carried out for the purpose of adding
> encoding support, update the TODO list with a description of the rework.
> This reworked driver will be published soon and transitional commits from the
> current driver will be submitted upstreamer after that.
>
> It seems best to wait for the rework to land upstream before unstaging the
> driver, since a major rework is best operated on a staging driver instead of a
> fully upstream one.
>
> Signed-off-by: Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx>

Acked-by: Nicolas Dufresne <nicolas.dufresne@xxxxxxxxxxxxx>

> ---
> drivers/staging/media/sunxi/cedrus/TODO | 23 ++++++++++++++++-------
> 1 file changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/staging/media/sunxi/cedrus/TODO b/drivers/staging/media/sunxi/cedrus/TODO
> index ec277ece47af..00aa304a7e36 100644
> --- a/drivers/staging/media/sunxi/cedrus/TODO
> +++ b/drivers/staging/media/sunxi/cedrus/TODO
> @@ -1,7 +1,16 @@
> -Before this stateless decoder driver can leave the staging area:
> -* The Request API needs to be stabilized;
> -* The codec-specific controls need to be thoroughly reviewed to ensure they
> - cover all intended uses cases;
> -* Userspace support for the Request API needs to be reviewed;
> -* Another stateless decoder driver should be submitted;
> -* At least one stateless encoder driver should be submitted.
> +This driver suffers from a bad initial design that results in various aspects
> +being intricated, making it difficult to scale to new codecs and to add encoding
> +support in the future.
> +
> +Before leaving the staging area, it should be reworked to clearly distinguish
> +between different aspects:
> +- platform, with resources management, interrupt handler, watchdog,
> + v4l2 and m2m devices registration;
> +- proc, with video device registration and related operations;
> +- context, with m2m context, queue and controls management;
> +- engine, with each individual codec job execution and codec-specific
> + operation callbacks;
> +
> +This will make it possible to register two different procs (decoder and
> +encoder) while sharing significant common infrastructure, common v4l2 and m2m
> +devices but exposing distinct video devices.