Hi Sakari, Thank you for the patch. On Fri, Oct 13, 2023 at 01:44:19PM +0300, Sakari Ailus wrote: > Store the number of pads in the sub-device state. This will be needed to > validate pad when retrieving information for non-stream-aware users. I'd rather store a pointer to the subdev. You can get the number of pads from there. > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- > drivers/media/v4l2-core/v4l2-subdev.c | 2 ++ > include/media/v4l2-subdev.h | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c > index d295a4e87b66..52a8043ab556 100644 > --- a/drivers/media/v4l2-core/v4l2-subdev.c > +++ b/drivers/media/v4l2-core/v4l2-subdev.c > @@ -1441,6 +1441,8 @@ __v4l2_subdev_state_alloc(struct v4l2_subdev *sd, const char *lock_name, > else > state->lock = &state->_lock; > > + state->num_pads = sd->entity.num_pads; > + > /* Drivers that support streams do not need the legacy pad config */ > if (!(sd->flags & V4L2_SUBDEV_FL_STREAMS) && sd->entity.num_pads) { > state->pads = kvcalloc(sd->entity.num_pads, > diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h > index c1f90c1223a7..5e5499a2fb0e 100644 > --- a/include/media/v4l2-subdev.h > +++ b/include/media/v4l2-subdev.h > @@ -756,6 +756,7 @@ struct v4l2_subdev_krouting { > * > * @_lock: default for 'lock' > * @lock: mutex for the state. May be replaced by the user. > + * @num_pads: the number of entries in the pads array > * @pads: &struct v4l2_subdev_pad_config array > * @routing: routing table for the subdev > * @stream_configs: stream configurations (only for V4L2_SUBDEV_FL_STREAMS) > @@ -768,6 +769,7 @@ struct v4l2_subdev_state { > /* lock for the struct v4l2_subdev_state fields */ > struct mutex _lock; > struct mutex *lock; > + unsigned int num_pads; > struct v4l2_subdev_pad_config *pads; > struct v4l2_subdev_krouting routing; > struct v4l2_subdev_stream_configs stream_configs; -- Regards, Laurent Pinchart