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]

 



Hi Niklas,

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>

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

-- 
Sakari Ailus



[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