On 02/15/2016 10:28 AM, Hans Verkuil wrote: >> +static const struct v4l2_ioctl_ops rvin_ioctl_ops = { >> + .vidioc_querycap = rvin_querycap, >> + .vidioc_try_fmt_vid_cap = rvin_try_fmt_vid_cap, >> + .vidioc_g_fmt_vid_cap = rvin_g_fmt_vid_cap, >> + .vidioc_s_fmt_vid_cap = rvin_s_fmt_vid_cap, >> + .vidioc_enum_fmt_vid_cap = rvin_enum_fmt_vid_cap, >> + >> + /* TODO: >> + * .vidioc_g_selection = rvin_g_selection, >> + * .vidioc_s_selection = rvin_s_selection, >> + */ >> + >> + .vidioc_enum_input = rvin_enum_input, >> + .vidioc_g_input = rvin_g_input, >> + .vidioc_s_input = rvin_s_input, > > I'm missing g/s/querystd here! > > (enum_std is handled by the core) > >> + >> + .vidioc_reqbufs = vb2_ioctl_reqbufs, >> + .vidioc_create_bufs = vb2_ioctl_create_bufs, >> + .vidioc_querybuf = vb2_ioctl_querybuf, >> + .vidioc_qbuf = vb2_ioctl_qbuf, >> + .vidioc_dqbuf = vb2_ioctl_dqbuf, >> + .vidioc_expbuf = vb2_ioctl_expbuf, Please add .vidioc_prepare_buf = vb2_ioctl_prepare_buf here as well. Regards, Hans >> + >> + .vidioc_streamon = rvin_streamon, >> + .vidioc_streamoff = rvin_streamoff, >> + >> + .vidioc_log_status = v4l2_ctrl_log_status, >> + .vidioc_subscribe_event = v4l2_ctrl_subscribe_event, >> + .vidioc_unsubscribe_event = v4l2_event_unsubscribe, >> +};