[v8,31/38] media: uapi: v4l: subdev: Enable streams API
Commit Message
Remove v4l2_subdev_enable_streams_api variable that was used to easily
enable streams API for development, and conditions that use the variable.
This patch enables the streams API for V4L2 sub-device interface which
allows transporting multiple streams on a single MC link.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
drivers/media/v4l2-core/v4l2-subdev.c | 30 ---------------------------
1 file changed, 30 deletions(-)
Comments
Hi Sakari,
Thank you for the patch.
On Wed, Mar 13, 2024 at 09:25:09AM +0200, Sakari Ailus wrote:
> Remove v4l2_subdev_enable_streams_api variable that was used to easily
> enable streams API for development, and conditions that use the variable.
>
> This patch enables the streams API for V4L2 sub-device interface which
> allows transporting multiple streams on a single MC link.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
The patch itself looks good, but I'll only send my Rb when I'll be
confident the API is stable :-)
> ---
> drivers/media/v4l2-core/v4l2-subdev.c | 30 ---------------------------
> 1 file changed, 30 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> index c8c435df92c8..b3a697df4b66 100644
> --- a/drivers/media/v4l2-core/v4l2-subdev.c
> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> @@ -26,15 +26,6 @@
> #include <media/v4l2-fh.h>
> #include <media/v4l2-ioctl.h>
>
> -#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
> -/*
> - * The Streams API is an experimental feature. To use the 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.
> @@ -570,13 +561,6 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> V4L2_SUBDEV_CLIENT_CAP_STREAMS;
> int rval;
>
> - /*
> - * If the streams API is not enabled, remove V4L2_SUBDEV_CAP_STREAMS.
> - * Remove this when the API is no longer experimental.
> - */
> - if (!v4l2_subdev_enable_streams_api)
> - streams_subdev = false;
> -
> switch (cmd) {
> case VIDIOC_SUBDEV_QUERYCAP: {
> struct v4l2_subdev_capability *cap = arg;
> @@ -916,9 +900,6 @@ 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;
>
> @@ -989,9 +970,6 @@ 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;
>
> @@ -1019,14 +997,6 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
> case VIDIOC_SUBDEV_S_CLIENT_CAP: {
> struct v4l2_subdev_client_capability *client_cap = arg;
>
> - /*
> - * Clear V4L2_SUBDEV_CLIENT_CAP_STREAMS if streams API is not
> - * enabled. Remove this when streams API is no longer
> - * experimental.
> - */
> - if (!v4l2_subdev_enable_streams_api)
> - client_cap->capabilities &= ~V4L2_SUBDEV_CLIENT_CAP_STREAMS;
> -
> /* Filter out unsupported capabilities */
> client_cap->capabilities &= (V4L2_SUBDEV_CLIENT_CAP_STREAMS |
> V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH);
@@ -26,15 +26,6 @@
#include <media/v4l2-fh.h>
#include <media/v4l2-ioctl.h>
-#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
-/*
- * The Streams API is an experimental feature. To use the 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.
@@ -570,13 +561,6 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
V4L2_SUBDEV_CLIENT_CAP_STREAMS;
int rval;
- /*
- * If the streams API is not enabled, remove V4L2_SUBDEV_CAP_STREAMS.
- * Remove this when the API is no longer experimental.
- */
- if (!v4l2_subdev_enable_streams_api)
- streams_subdev = false;
-
switch (cmd) {
case VIDIOC_SUBDEV_QUERYCAP: {
struct v4l2_subdev_capability *cap = arg;
@@ -916,9 +900,6 @@ 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;
@@ -989,9 +970,6 @@ 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;
@@ -1019,14 +997,6 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg,
case VIDIOC_SUBDEV_S_CLIENT_CAP: {
struct v4l2_subdev_client_capability *client_cap = arg;
- /*
- * Clear V4L2_SUBDEV_CLIENT_CAP_STREAMS if streams API is not
- * enabled. Remove this when streams API is no longer
- * experimental.
- */
- if (!v4l2_subdev_enable_streams_api)
- client_cap->capabilities &= ~V4L2_SUBDEV_CLIENT_CAP_STREAMS;
-
/* Filter out unsupported capabilities */
client_cap->capabilities &= (V4L2_SUBDEV_CLIENT_CAP_STREAMS |
V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH);