[v8,37/38] media: ccs: Add IMMUTABLE route flag

Message ID 20240313072516.241106-38-sakari.ailus@linux.intel.com (mailing list archive)
State New
Headers
Series Generic line based metadata support, internal pads |

Commit Message

Sakari Ailus March 13, 2024, 7:25 a.m. UTC
  Add immutable route flag to the routing table.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/media/i2c/ccs/ccs-core.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Comments

Julien Massot March 15, 2024, 4:08 p.m. UTC | #1
On 3/13/24 08:25, Sakari Ailus wrote:
> Add immutable route flag to the routing table.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Julien Massot <julien.massot@collabora.com>
> ---
>   drivers/media/i2c/ccs/ccs-core.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index 838daab212f2..5205d1ecf8f2 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -3368,12 +3368,14 @@ static int ccs_src_init_state(struct v4l2_subdev *sd,
>   			.sink_pad = CCS_PAD_SINK,
>   			.source_pad = CCS_PAD_SRC,
>   			.source_stream = CCS_STREAM_PIXEL,
> -			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
> +			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
> +				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
>   		}, {
>   			.sink_pad = CCS_PAD_META,
>   			.source_pad = CCS_PAD_SRC,
>   			.source_stream = CCS_STREAM_META,
> -			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
> +			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
> +				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
>   		}
>   	};
>   	struct v4l2_subdev_krouting routing = {
  
Laurent Pinchart March 21, 2024, 4:59 p.m. UTC | #2
Hi Sakari,

Thank you for the patch.

On Wed, Mar 13, 2024 at 09:25:15AM +0200, Sakari Ailus wrote:
> Add immutable route flag to the routing table.

I would write here that the metadata stream route is immutable as CCS
sensors don't offer a way to disable embedded data. Or if they do, that
it's currently unimplemented :-) I would then also possibly add a todo
comment to the code.

> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

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

> ---
>  drivers/media/i2c/ccs/ccs-core.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index 838daab212f2..5205d1ecf8f2 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -3368,12 +3368,14 @@ static int ccs_src_init_state(struct v4l2_subdev *sd,
>  			.sink_pad = CCS_PAD_SINK,
>  			.source_pad = CCS_PAD_SRC,
>  			.source_stream = CCS_STREAM_PIXEL,
> -			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
> +			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
> +				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
>  		}, {
>  			.sink_pad = CCS_PAD_META,
>  			.source_pad = CCS_PAD_SRC,
>  			.source_stream = CCS_STREAM_META,
> -			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
> +			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
> +				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
>  		}
>  	};
>  	struct v4l2_subdev_krouting routing = {
  
Sakari Ailus April 11, 2024, 9:06 a.m. UTC | #3
Hi Laurent,

On Thu, Mar 21, 2024 at 06:59:35PM +0200, Laurent Pinchart wrote:
> Hi Sakari,
> 
> Thank you for the patch.
> 
> On Wed, Mar 13, 2024 at 09:25:15AM +0200, Sakari Ailus wrote:
> > Add immutable route flag to the routing table.
> 
> I would write here that the metadata stream route is immutable as CCS
> sensors don't offer a way to disable embedded data. Or if they do, that
> it's currently unimplemented :-) I would then also possibly add a todo
> comment to the code.

They don't. Probably because it's mandatory and there are no important
reasons to disable it.

> 
> > 
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

Thanks!

> 
> > ---
> >  drivers/media/i2c/ccs/ccs-core.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> > index 838daab212f2..5205d1ecf8f2 100644
> > --- a/drivers/media/i2c/ccs/ccs-core.c
> > +++ b/drivers/media/i2c/ccs/ccs-core.c
> > @@ -3368,12 +3368,14 @@ static int ccs_src_init_state(struct v4l2_subdev *sd,
> >  			.sink_pad = CCS_PAD_SINK,
> >  			.source_pad = CCS_PAD_SRC,
> >  			.source_stream = CCS_STREAM_PIXEL,
> > -			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
> > +			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
> > +				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
> >  		}, {
> >  			.sink_pad = CCS_PAD_META,
> >  			.source_pad = CCS_PAD_SRC,
> >  			.source_stream = CCS_STREAM_META,
> > -			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
> > +			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
> > +				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
> >  		}
> >  	};
> >  	struct v4l2_subdev_krouting routing = {
>
  

Patch

diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index 838daab212f2..5205d1ecf8f2 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -3368,12 +3368,14 @@  static int ccs_src_init_state(struct v4l2_subdev *sd,
 			.sink_pad = CCS_PAD_SINK,
 			.source_pad = CCS_PAD_SRC,
 			.source_stream = CCS_STREAM_PIXEL,
-			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
+			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
+				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
 		}, {
 			.sink_pad = CCS_PAD_META,
 			.source_pad = CCS_PAD_SRC,
 			.source_stream = CCS_STREAM_META,
-			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
+			.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE |
+				 V4L2_SUBDEV_ROUTE_FL_IMMUTABLE,
 		}
 	};
 	struct v4l2_subdev_krouting routing = {