Hi Prabhakar, Thank you for the patch. On Fri, Sep 06, 2024 at 06:39:45PM +0100, Prabhakar wrote: > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > > The RZ/G2L CRU requires information about which VCx to process data from, > among the four available VCs. To obtain this information, the > .get_frame_desc() routine is implemented. This routine, in turn, calls > .get_frame_desc() on the remote sensor connected to the CSI2 bridge. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > --- > .../media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > index c7fdee347ac8..a7e4a0c109da 100644 > --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > @@ -582,6 +582,17 @@ static int rzg2l_csi2_enum_frame_size(struct v4l2_subdev *sd, > return 0; > } > > +static int rzg2l_csi2_get_frame_desc(struct v4l2_subdev *sd, unsigned int pad, > + struct v4l2_mbus_frame_desc *fd) > +{ > + struct rzg2l_csi2 *csi2 = sd_to_csi2(sd); > + > + if (!csi2->remote_source) > + return -EINVAL; Maybe -ENODEV ? > + > + return v4l2_subdev_call(csi2->remote_source, pad, get_frame_desc, pad, fd); > +} > + I wonder if we should implement a wrapper around .get_frame_desc() that would automatically forward the call to the source if .get_frame_desc() isn't implemented by a subdev. That's not a requirement for this series, Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > static const struct v4l2_subdev_video_ops rzg2l_csi2_video_ops = { > .s_stream = rzg2l_csi2_s_stream, > .pre_streamon = rzg2l_csi2_pre_streamon, > @@ -593,6 +604,7 @@ static const struct v4l2_subdev_pad_ops rzg2l_csi2_pad_ops = { > .enum_frame_size = rzg2l_csi2_enum_frame_size, > .set_fmt = rzg2l_csi2_set_format, > .get_fmt = v4l2_subdev_get_fmt, > + .get_frame_desc = rzg2l_csi2_get_frame_desc, > }; > > static const struct v4l2_subdev_ops rzg2l_csi2_subdev_ops = { -- Regards, Laurent Pinchart