[v16,02/20] media: add V4L2_SUBDEV_FL_STREAMS

Message ID 20221215121634.287100-3-tomi.valkeinen@ideasonboard.com
State New
Headers
Series v4l: routing and streams support |

Commit Message

Tomi Valkeinen Dec. 15, 2022, 12:16 p.m. UTC
  Add subdev flag V4L2_SUBDEV_FL_STREAMS. It is used to indicate that the
subdev supports the new API with multiplexed streams (routing, stream
configs).

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 include/media/v4l2-subdev.h | 11 +++++++++++
 1 file changed, 11 insertions(+)
  

Comments

Laurent Pinchart Jan. 9, 2023, 11:56 a.m. UTC | #1
Hi Tomi,

Thank you for the patch.

On Thu, Dec 15, 2022 at 02:16:16PM +0200, Tomi Valkeinen wrote:
> Add subdev flag V4L2_SUBDEV_FL_STREAMS. It is used to indicate that the
> subdev supports the new API with multiplexed streams (routing, stream
> configs).
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> ---
>  include/media/v4l2-subdev.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
> index 2f80c9c818ed..4be0a590c7c7 100644
> --- a/include/media/v4l2-subdev.h
> +++ b/include/media/v4l2-subdev.h
> @@ -879,6 +879,17 @@ struct v4l2_subdev_internal_ops {
>   * should set this flag.
>   */
>  #define V4L2_SUBDEV_FL_HAS_EVENTS		(1U << 3)
> +/*
> + * Set this flag if this subdev supports multiplexed streams. This means
> + * that the driver supports routing and handles the stream parameter in its
> + * v4l2_subdev_pad_ops handlers. More specifically, this means:
> + *
> + * - Centrally managed subdev active state is enabled
> + * - Legacy pad config is _not_ supported (state->pads is NULL)
> + * - Routing ioctls are available

I wonder, as a sanity check, should the subdev core verify that the
s_routing operation is available when this flag is set ? This could be
done on top, so

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

> + * - Multiple streams per pad are supported
> + */
> +#define V4L2_SUBDEV_FL_STREAMS			(1U << 4)
>  
>  struct regulator_bulk_data;
>
  

Patch

diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index 2f80c9c818ed..4be0a590c7c7 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -879,6 +879,17 @@  struct v4l2_subdev_internal_ops {
  * should set this flag.
  */
 #define V4L2_SUBDEV_FL_HAS_EVENTS		(1U << 3)
+/*
+ * Set this flag if this subdev supports multiplexed streams. This means
+ * that the driver supports routing and handles the stream parameter in its
+ * v4l2_subdev_pad_ops handlers. More specifically, this means:
+ *
+ * - Centrally managed subdev active state is enabled
+ * - Legacy pad config is _not_ supported (state->pads is NULL)
+ * - Routing ioctls are available
+ * - Multiple streams per pad are supported
+ */
+#define V4L2_SUBDEV_FL_STREAMS			(1U << 4)
 
 struct regulator_bulk_data;