Re: [PATCH v16.1] media: subdev: Require code change to enable [GS]_ROUTING

From: Laurent Pinchart
Date: Sun Jan 15 2023 - 10:34:31 EST


Hi Tomi,

Thank you for the patch.

On Sun, Jan 15, 2023 at 02:40:08PM +0200, Tomi Valkeinen wrote:
> Streams API is an experimental feature. To use Streams API, the user

Nitpicking, I'd write "The Streams API" and "To use the Streams API".

I'm sure Sakari can handle this in the second version of the pull
request.

> needs to change a variable in v4l2-subdev.c and recompile the kernel.
>
> This commit should be reverted when the Streams API is deemed ready for
> production use.
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> ---
>
> Here's a minor update to the patch:
> - Fix unused var warning
> - Don't initialize the static var to 0
>
> drivers/media/v4l2-core/v4l2-subdev.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> index 61b429016a2f..a576b22164b0 100644
> --- a/drivers/media/v4l2-core/v4l2-subdev.c
> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> @@ -23,6 +23,15 @@
> #include <media/v4l2-fh.h>
> #include <media/v4l2-ioctl.h>
>
> +#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
> +/*
> + * Streams API is an experimental feature. To use Streams API, set
> + * 'v4l2_subdev_enable_streams_api' to 1 below.
> + */
> +
> +static bool v4l2_subdev_enable_streams_api;
> +#endif
> +
> /*
> * Maximum stream ID is 63 for now, as we use u64 bitmask to represent a set
> * of streams.
> @@ -751,6 +760,9 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> struct v4l2_subdev_routing *routing = arg;
> struct v4l2_subdev_krouting *krouting;
>
> + if (!v4l2_subdev_enable_streams_api)
> + return -ENOIOCTLCMD;
> +
> if (!(sd->flags & V4L2_SUBDEV_FL_STREAMS))
> return -ENOIOCTLCMD;
>
> @@ -778,6 +790,9 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> struct v4l2_subdev_krouting krouting = {};
> unsigned int i;
>
> + if (!v4l2_subdev_enable_streams_api)
> + return -ENOIOCTLCMD;
> +
> if (!(sd->flags & V4L2_SUBDEV_FL_STREAMS))
> return -ENOIOCTLCMD;
>

--
Regards,

Laurent Pinchart