Message ID | 20220727103639.581567-21-tomi.valkeinen@ideasonboard.com |
---|---|
State | Superseded |
Headers | show |
Series | v4l: routing and streams support | expand |
Hi Tomi, Thanks for the patch. On Wed, Jul 27, 2022 at 3:37 AM Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> wrote: > > Add streams support to v4l2_subdev_get_fmt() helper function. Subdev > drivers that do not need to do anything special in their get_fmt op can > use this helper directly for v4l2_subdev_pad_ops.get_fmt. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> > --- > drivers/media/v4l2-core/v4l2-subdev.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c > index 0dd612f09f35..95fd2e07d69f 100644 > --- a/drivers/media/v4l2-core/v4l2-subdev.c > +++ b/drivers/media/v4l2-core/v4l2-subdev.c > @@ -1455,10 +1455,14 @@ int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, > { > struct v4l2_mbus_framefmt *fmt; > > - if (format->pad >= sd->entity.num_pads) > - return -EINVAL; > + if (sd->flags & V4L2_SUBDEV_FL_STREAMS) > + fmt = v4l2_subdev_state_get_stream_format(state, format->pad, > + format->stream); > + else if (format->pad < sd->entity.num_pads && format->stream == 0) > + fmt = v4l2_subdev_get_pad_format(sd, state, format->pad); > + else > + fmt = NULL; fmt can be initialized to NULL at the declaration, so that the above 2 lines can be removed. Regards, Satish > > - fmt = v4l2_subdev_get_pad_format(sd, state, format->pad); > if (!fmt) > return -EINVAL; > > -- > 2.34.1 >
On 29/07/2022 12:16, Satish Nagireddy wrote: > Hi Tomi, > > Thanks for the patch. > > On Wed, Jul 27, 2022 at 3:37 AM Tomi Valkeinen > <tomi.valkeinen@ideasonboard.com> wrote: >> >> Add streams support to v4l2_subdev_get_fmt() helper function. Subdev >> drivers that do not need to do anything special in their get_fmt op can >> use this helper directly for v4l2_subdev_pad_ops.get_fmt. >> >> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> >> --- >> drivers/media/v4l2-core/v4l2-subdev.c | 10 +++++++--- >> 1 file changed, 7 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c >> index 0dd612f09f35..95fd2e07d69f 100644 >> --- a/drivers/media/v4l2-core/v4l2-subdev.c >> +++ b/drivers/media/v4l2-core/v4l2-subdev.c >> @@ -1455,10 +1455,14 @@ int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, >> { >> struct v4l2_mbus_framefmt *fmt; >> >> - if (format->pad >= sd->entity.num_pads) >> - return -EINVAL; >> + if (sd->flags & V4L2_SUBDEV_FL_STREAMS) >> + fmt = v4l2_subdev_state_get_stream_format(state, format->pad, >> + format->stream); >> + else if (format->pad < sd->entity.num_pads && format->stream == 0) >> + fmt = v4l2_subdev_get_pad_format(sd, state, format->pad); >> + else >> + fmt = NULL; > > fmt can be initialized to NULL at the declaration, so that the above 2 > lines can be removed. That is true, but I personally like the above better, as it handles all the cases in the same if-else-sequence. Tomi
On Fri, Jul 29, 2022 at 3:30 AM Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> wrote: > > On 29/07/2022 12:16, Satish Nagireddy wrote: > > Hi Tomi, > > > > Thanks for the patch. > > > > On Wed, Jul 27, 2022 at 3:37 AM Tomi Valkeinen > > <tomi.valkeinen@ideasonboard.com> wrote: > >> > >> Add streams support to v4l2_subdev_get_fmt() helper function. Subdev > >> drivers that do not need to do anything special in their get_fmt op can > >> use this helper directly for v4l2_subdev_pad_ops.get_fmt. > >> > >> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> > >> --- > >> drivers/media/v4l2-core/v4l2-subdev.c | 10 +++++++--- > >> 1 file changed, 7 insertions(+), 3 deletions(-) > >> > >> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c > >> index 0dd612f09f35..95fd2e07d69f 100644 > >> --- a/drivers/media/v4l2-core/v4l2-subdev.c > >> +++ b/drivers/media/v4l2-core/v4l2-subdev.c > >> @@ -1455,10 +1455,14 @@ int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, > >> { > >> struct v4l2_mbus_framefmt *fmt; > >> > >> - if (format->pad >= sd->entity.num_pads) > >> - return -EINVAL; > >> + if (sd->flags & V4L2_SUBDEV_FL_STREAMS) > >> + fmt = v4l2_subdev_state_get_stream_format(state, format->pad, > >> + format->stream); > >> + else if (format->pad < sd->entity.num_pads && format->stream == 0) > >> + fmt = v4l2_subdev_get_pad_format(sd, state, format->pad); > >> + else > >> + fmt = NULL; > > > > fmt can be initialized to NULL at the declaration, so that the above 2 > > lines can be removed. > > That is true, but I personally like the above better, as it handles all > the cases in the same if-else-sequence. > > Tomi Sure. - Satish
diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c index 0dd612f09f35..95fd2e07d69f 100644 --- a/drivers/media/v4l2-core/v4l2-subdev.c +++ b/drivers/media/v4l2-core/v4l2-subdev.c @@ -1455,10 +1455,14 @@ int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, { struct v4l2_mbus_framefmt *fmt; - if (format->pad >= sd->entity.num_pads) - return -EINVAL; + if (sd->flags & V4L2_SUBDEV_FL_STREAMS) + fmt = v4l2_subdev_state_get_stream_format(state, format->pad, + format->stream); + else if (format->pad < sd->entity.num_pads && format->stream == 0) + fmt = v4l2_subdev_get_pad_format(sd, state, format->pad); + else + fmt = NULL; - fmt = v4l2_subdev_get_pad_format(sd, state, format->pad); if (!fmt) return -EINVAL;
Add streams support to v4l2_subdev_get_fmt() helper function. Subdev drivers that do not need to do anything special in their get_fmt op can use this helper directly for v4l2_subdev_pad_ops.get_fmt. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> --- drivers/media/v4l2-core/v4l2-subdev.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)