Re: [PATCH v7 5/5] media: intel/ipu6: Obtain link frequency from a sub-device

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

 



On Mon, Dec 16, 2024 at 07:47:12AM +0000, Sakari Ailus wrote:
> On Sun, Dec 15, 2024 at 07:08:32PM +0200, Laurent Pinchart wrote:
> > Hi Sakari,
> > 
> > Thank you for the patch.
> 
> Thank you for the review. I asked you to review a set but it wasn't this
> one:
> <URL:https://lore.kernel.org/linux-media/20241129095142.87196-1-sakari.ailus@xxxxxxxxxxxxxxx/T/#t>.
> :-)

Are you complaining that I review too many patches ? :-)

> > I think this should come before 4/5.
> > 
> > On Tue, Dec 10, 2024 at 09:59:06AM +0200, Sakari Ailus wrote:
> > > Obtain the link frequency from the sub-device instead of a control
> > > handler. This allows obtaining it using the get_mbus_config() sub-device
> > > pad op that which is only supported by the IVSC driver.
> > 
> > "which is the only method supported by the IVSC driver"
> > 
> > > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> > > ---
> > >  drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 12 +++---------
> > >  1 file changed, 3 insertions(+), 9 deletions(-)
> > > 
> > > diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> > > index 051898ce53f4..da8581a37e22 100644
> > > --- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> > > +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> > > @@ -80,25 +80,19 @@ static const struct ipu6_csi2_error dphy_rx_errors[] = {
> > >  s64 ipu6_isys_csi2_get_link_freq(struct ipu6_isys_csi2 *csi2)
> > >  {
> > >  	struct media_pad *src_pad;
> > > -	struct v4l2_subdev *ext_sd;
> > > -	struct device *dev;
> > >  
> > >  	if (!csi2)
> > >  		return -EINVAL;
> > >  
> > > -	dev = &csi2->isys->adev->auxdev.dev;
> > >  	src_pad = media_entity_remote_source_pad_unique(&csi2->asd.sd.entity);
> > 
> > Not a candidate for this patch, but can the source change, or can it be
> > cached at probe time (or notifier bound time) ?
> 
> It could be, but why would you do that?
> 
> This would also prevent connecting multiple sensors to a single CSI-2
> receiver.

Precisely because people shouldn't do this :-)

It would be more efficient to get the pad at probe time and cache it,
and would remove an error path at runtime. Until we have a use case
where we need to support more than one sensor on the same CSI-2 receiver
for this driver, I think that would be best.

> > >  	if (IS_ERR(src_pad)) {
> > > -		dev_err(dev, "can't get source pad of %s (%ld)\n",
> > > +		dev_err(&csi2->isys->adev->auxdev.dev,
> > > +			"can't get source pad of %s (%ld)\n",
> > >  			csi2->asd.sd.name, PTR_ERR(src_pad));
> > >  		return PTR_ERR(src_pad);
> > >  	}
> > >  
> > > -	ext_sd = media_entity_to_v4l2_subdev(src_pad->entity);
> > > -	if (WARN(!ext_sd, "Failed to get subdev for %s\n", csi2->asd.sd.name))
> > > -		return -ENODEV;
> > > -
> > > -	return v4l2_get_link_freq(ext_sd->ctrl_handler, 0, 0);
> > > +	return v4l2_get_link_freq(src_pad, 0, 0);
> > >  }
> > >  
> > >  static int csi2_subscribe_event(struct v4l2_subdev *sd, struct v4l2_fh *fh,

-- 
Regards,

Laurent Pinchart




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux