Re: [PATCH v6 16/18] media: intel/ipu6: support line-based metadata capture support

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

 



Hi Hans,

Thank you for the review.

On Sat, Apr 27, 2024 at 06:00:13PM +0200, Hans Verkuil wrote:
> > -static int vidioc_try_fmt_vid_cap(struct file *file, void *fh,
> > -				  struct v4l2_format *f)
> > +static int ipu6_isys_vidioc_s_fmt_meta_cap(struct file *file, void *fh,
> > +					   struct v4l2_format *f)
> >  {
> >  	struct ipu6_isys_video *av = video_drvdata(file);
> >  
> > -	ipu6_isys_video_try_fmt_vid(av, &f->fmt.pix);
> 
> This is missing a vb2_is_busy() check.

To be added in v7.

...

> > @@ -1214,8 +1309,10 @@ int ipu6_isys_video_init(struct ipu6_isys_video *av)
> >  	av->vdev.queue = &av->aq.vbq;
> >  	av->vdev.lock = &av->mutex;
> >  
> > -	ipu6_isys_video_try_fmt_vid(av, &format.fmt.pix);
> > +	__ipu6_isys_vidioc_try_fmt_vid_cap(av, &format);
> >  	av->pix_fmt = format.fmt.pix;
> > +	__ipu6_isys_vidioc_try_fmt_meta_cap(av, &format_meta);
> 
> Here is the cause of the v4l2-compliance failure (I think): this will
> set the format_meta pixelformat to ipu6_isys_pfmts[0], which is BG12.
> 
> It doesn't check the is_meta flag there.
> 
> So it is not a v4l2-compliance bug, but a driver bug AFAICT.

Looks like you were right. I was quite confused of what actually was the
problem for v4l2-compliance. Additionally the driver didn't also correctly
enumerate the formats for both of the buffer types.

I've fixed both and v4l2-compliance passes now.

-- 
Kind regards,

Sakari Ailus




[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