[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <442c8ed533e01af213c5fae2dad5ad317872d4d1.camel@collabora.com>
Date: Tue, 26 Aug 2025 09:21:29 +0200
From: Julien Massot <julien.massot@...labora.com>
To: Sakari Ailus <sakari.ailus@...ux.intel.com>
Cc: kernel@...labora.com, Benjamin Mugnier <benjamin.mugnier@...s.st.com>,
Sylvain Petinot <sylvain.petinot@...s.st.com>, Mauro Carvalho Chehab
<mchehab@...nel.org>, linux-media@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] media: i2c: vgxy61: Report stream using frame
descriptors
Hi Sakari,
On Fri, 2025-08-15 at 06:04 +0000, Sakari Ailus wrote:
> Hi Julien,
>
> On Fri, Jul 04, 2025 at 11:28:24AM +0200, Julien Massot wrote:
> > Add support for .get_frame_desc() to report CSI-2 virtual channel
> > and data type information. This allows CSI-2 receivers to properly
> > interpret the stream without inferring the data type from the pixel
> > format.
> >
> > Signed-off-by: Julien Massot <julien.massot@...labora.com>
> > ---
> > drivers/media/i2c/vgxy61.c | 16 ++++++++++++++++
> > 1 file changed, 16 insertions(+)
> >
> > diff --git a/drivers/media/i2c/vgxy61.c b/drivers/media/i2c/vgxy61.c
> > index
> > 5b0479f3a3c0592be430cefe5a1ab9a76812ba84..44d6c8d8fbf8d6182e42d44e129b
> > c45945ee0da5 100644
> > --- a/drivers/media/i2c/vgxy61.c
> > +++ b/drivers/media/i2c/vgxy61.c
> > @@ -1181,6 +1181,21 @@ static int vgxy61_s_stream(struct v4l2_subdev
> > *sd, int enable)
> > return ret;
> > }
> >
> > +static int vgxy61_get_frame_desc(struct v4l2_subdev *sd, unsigned int
> > pad,
> > + struct v4l2_mbus_frame_desc *fd)
> > +{
> > + struct vgxy61_dev *sensor = to_vgxy61_dev(sd);
> > +
> > + fd->type = V4L2_MBUS_FRAME_DESC_TYPE_CSI2;
> > + fd->num_entries = 1;
> > + fd->entry[0].pixelcode = sensor->fmt.code;
> > + fd->entry[0].stream = 0;
> > + fd->entry[0].bus.csi2.vc = 0;
> > + fd->entry[0].bus.csi2.dt = get_data_type_by_code(sensor-
> > >fmt.code);
> > +
> > + return 0;
> > +}
> > +
> > static int vgxy61_set_fmt(struct v4l2_subdev *sd,
> > struct v4l2_subdev_state *sd_state,
> > struct v4l2_subdev_format *format)
> > @@ -1402,6 +1417,7 @@ static const struct v4l2_subdev_pad_ops
> > vgxy61_pad_ops = {
> > .set_fmt = vgxy61_set_fmt,
> > .get_selection = vgxy61_get_selection,
> > .enum_frame_size = vgxy61_enum_frame_size,
> > + .get_frame_desc = vgxy61_get_frame_desc,
> > };
> >
> > static const struct v4l2_subdev_ops vgxy61_subdev_ops = {
> >
>
> I guess this is correct as such, but does it provide any information
> that
> isn't already available? I.e. I wouldn't add it just for the sake of it.
Perhaps, I missed something. Without the get_frame_desc the CSI receiver
have to infers the datatype based on the pixel format.
I made this patch because some CSI receivers, such as the upcoming GMSL2
framework are relying on the frame desc to update its routing table.
So, it will only support sensors implementing the get_frame_desc function.
Regards,
Julien
Powered by blists - more mailing lists