Re: Re: [PATCH v2 08/13] media: cadence: csi2rx: add get_frame_desc wrapper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jul 12, 2024 at 16:48:28 +0200, Jacopo Mondi wrote:
> Hi Jai
> 
> On Thu, Jun 27, 2024 at 06:40:03PM GMT, Jai Luthra wrote:
> > From: Pratyush Yadav <p.yadav@xxxxxx>
> >
> > J721E wrapper CSI2RX driver needs to get the frame descriptor from the
> > source to find out info about virtual channel. This driver itself does
> > not touch the routing or virtual channels in any way. So simply pass the
> > descriptor through from the source.
> >
> > Signed-off-by: Pratyush Yadav <p.yadav@xxxxxx>
> > Signed-off-by: Jai Luthra <j-luthra@xxxxxx>
> > ---
> >  drivers/media/platform/cadence/cdns-csi2rx.c | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> >
> > diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/platform/cadence/cdns-csi2rx.c
> > index 751eadbe61ef..b6054d62c799 100644
> > --- a/drivers/media/platform/cadence/cdns-csi2rx.c
> > +++ b/drivers/media/platform/cadence/cdns-csi2rx.c
> > @@ -135,6 +135,21 @@ static const struct csi2rx_fmt *csi2rx_get_fmt_by_code(u32 code)
> >  	return NULL;
> >  }
> >
> > +static int csi2rx_get_frame_desc_from_source(struct csi2rx_priv *csi2rx,
> > +					     struct v4l2_mbus_frame_desc *fd)
> > +{
> > +	struct media_pad *remote_pad;
> > +
> > +	remote_pad = media_entity_remote_source_pad_unique(&csi2rx->subdev.entity);
> > +	if (!remote_pad) {
> > +		dev_err(csi2rx->dev, "No remote pad found for sink\n");
> > +		return -ENODEV;
> > +	}
> > +
> > +	return v4l2_subdev_call(csi2rx->source_subdev, pad, get_frame_desc,
> > +				remote_pad->index, fd);
> > +}
> > +
> >  static inline
> >  struct csi2rx_priv *v4l2_subdev_to_csi2rx(struct v4l2_subdev *subdev)
> >  {
> > @@ -466,10 +481,19 @@ static int csi2rx_init_state(struct v4l2_subdev *subdev,
> >  	return csi2rx_set_fmt(subdev, state, &format);
> >  }
> >
> > +static int csi2rx_get_frame_desc(struct v4l2_subdev *subdev, unsigned int pad,
> > +				 struct v4l2_mbus_frame_desc *fd)
> > +{
> > +	struct csi2rx_priv *csi2rx = v4l2_subdev_to_csi2rx(subdev);
> > +
> > +	return csi2rx_get_frame_desc_from_source(csi2rx, fd);
> > +}
> > +
> >  static const struct v4l2_subdev_pad_ops csi2rx_pad_ops = {
> >  	.enum_mbus_code	= csi2rx_enum_mbus_code,
> >  	.get_fmt	= v4l2_subdev_get_fmt,
> >  	.set_fmt	= csi2rx_set_fmt,
> > +	.get_frame_desc = csi2rx_get_frame_desc,
> 
> The previous entries are indented with a tab

Ah thanks, will fix.

> 
> With this fixed
> Reviewed-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
> 
> Thanks
>   j
> 
> >  };
> >
> >  static const struct v4l2_subdev_video_ops csi2rx_video_ops = {
> >
> > --
> > 2.43.0
> >
> >

-- 
Thanks,
Jai

GPG Fingerprint: 4DE0 D818 E5D5 75E8 D45A AFC5 43DE 91F9 249A 7145

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux