Re: [PATCH v4 3/3] staging/intel-ipu3: Make use of V4L2_CAP_IO_MC

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

 



Hello,

On Mon, Mar 09, 2020 at 03:53:18PM +0200, Sakari Ailus wrote:
> On Fri, Mar 06, 2020 at 05:39:35PM +0100, Niklas Söderlund wrote:
> > From: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>
> > 
> > Set the V4L2_CAP_IO_MC capability flag and remove the driver specific
> > vidioc_enum_{input,output}, vidioc_g_{input,output} and
> > vidioc_s_{input,output} callbacks.
> > 
> > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>
> > ---
> >  drivers/staging/media/ipu3/ipu3-v4l2.c | 60 +-------------------------
> >  1 file changed, 2 insertions(+), 58 deletions(-)
> > 
> > diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
> > index 09c8ede1457cad96..2c42be3d995621e3 100644
> > --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
> > +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
> > @@ -845,54 +845,6 @@ static int imgu_vidioc_g_meta_fmt(struct file *file, void *fh,
> >  	return 0;
> >  }
> >  
> > -static int imgu_vidioc_enum_input(struct file *file, void *fh,
> > -				  struct v4l2_input *input)
> > -{
> > -	if (input->index > 0)
> > -		return -EINVAL;
> > -	strscpy(input->name, "camera", sizeof(input->name));
> > -	input->type = V4L2_INPUT_TYPE_CAMERA;
> > -
> > -	return 0;
> > -}
> > -
> > -static int imgu_vidioc_g_input(struct file *file, void *fh, unsigned int *input)
> > -{
> > -	*input = 0;
> > -
> > -	return 0;
> > -}
> > -
> > -static int imgu_vidioc_s_input(struct file *file, void *fh, unsigned int input)
> > -{
> > -	return input == 0 ? 0 : -EINVAL;
> > -}
> > -
> > -static int imgu_vidioc_enum_output(struct file *file, void *fh,
> > -				   struct v4l2_output *output)
> > -{
> > -	if (output->index > 0)
> > -		return -EINVAL;
> > -	strscpy(output->name, "camera", sizeof(output->name));
> > -	output->type = V4L2_INPUT_TYPE_CAMERA;
> > -
> > -	return 0;
> > -}
> > -
> > -static int imgu_vidioc_g_output(struct file *file, void *fh,
> > -				unsigned int *output)
> > -{
> > -	*output = 0;
> > -
> > -	return 0;
> > -}
> > -
> > -static int imgu_vidioc_s_output(struct file *file, void *fh,
> > -				unsigned int output)
> > -{
> > -	return output == 0 ? 0 : -EINVAL;
> > -}
> > -
> >  /******************** function pointers ********************/
> >  
> >  static struct v4l2_subdev_internal_ops imgu_subdev_internal_ops = {
> > @@ -965,14 +917,6 @@ static const struct v4l2_ioctl_ops imgu_v4l2_ioctl_ops = {
> >  	.vidioc_s_fmt_vid_out_mplane = imgu_vidioc_s_fmt,
> >  	.vidioc_try_fmt_vid_out_mplane = imgu_vidioc_try_fmt,
> >  
> > -	.vidioc_enum_output = imgu_vidioc_enum_output,
> > -	.vidioc_g_output = imgu_vidioc_g_output,
> > -	.vidioc_s_output = imgu_vidioc_s_output,
> > -
> > -	.vidioc_enum_input = imgu_vidioc_enum_input,
> > -	.vidioc_g_input = imgu_vidioc_g_input,
> > -	.vidioc_s_input = imgu_vidioc_s_input,
> > -
> >  	/* buffer queue management */
> >  	.vidioc_reqbufs = vb2_ioctl_reqbufs,
> >  	.vidioc_create_bufs = vb2_ioctl_create_bufs,
> > @@ -1062,7 +1006,7 @@ static void imgu_node_to_v4l2(u32 node, struct video_device *vdev,
> >  
> >  	switch (node) {
> >  	case IMGU_NODE_IN:
> > -		cap = V4L2_CAP_VIDEO_OUTPUT_MPLANE;
> > +		cap = V4L2_CAP_VIDEO_OUTPUT_MPLANE | V4L2_CAP_IO_MC;
> >  		f->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
> >  		vdev->ioctl_ops = &imgu_v4l2_ioctl_ops;
> >  		break;
> > @@ -1081,7 +1025,7 @@ static void imgu_node_to_v4l2(u32 node, struct video_device *vdev,
> >  		imgu_css_meta_fmt_set(&f->fmt.meta);
> >  		break;
> >  	default:
> > -		cap = V4L2_CAP_VIDEO_CAPTURE_MPLANE;
> > +		cap = V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_IO_MC;
> 
> So here, you'd add V4L2_CAP_IO_MC to all kinds of nodes.
> 
> With that,
> 
> Acked-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>

I like that better too. With that change,

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> >  		f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
> >  		vdev->ioctl_ops = &imgu_v4l2_ioctl_ops;
> >  	}

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux