diff options
Diffstat (limited to 'drivers/media/v4l2-core/v4l2-ioctl.c')
| -rw-r--r-- | drivers/media/v4l2-core/v4l2-ioctl.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c index 31d0109ce5a8..9ac557b8e146 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1413,6 +1413,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)  		case V4L2_PIX_FMT_VP8:		descr = "VP8"; break;  		case V4L2_PIX_FMT_VP8_FRAME:    descr = "VP8 Frame"; break;  		case V4L2_PIX_FMT_VP9:		descr = "VP9"; break; +		case V4L2_PIX_FMT_VP9_FRAME:    descr = "VP9 Frame"; break;  		case V4L2_PIX_FMT_HEVC:		descr = "HEVC"; break; /* aka H.265 */  		case V4L2_PIX_FMT_HEVC_SLICE:	descr = "HEVC Parsed Slice Data"; break;  		case V4L2_PIX_FMT_FWHT:		descr = "FWHT"; break; /* used in vicodec */ @@ -2090,6 +2091,7 @@ static int v4l_prepare_buf(const struct v4l2_ioctl_ops *ops,  static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,  				struct file *file, void *fh, void *arg)  { +	struct video_device *vfd = video_devdata(file);  	struct v4l2_streamparm *p = arg;  	v4l2_std_id std;  	int ret = check_fmt(file, p->type); @@ -2101,7 +2103,8 @@ static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,  	if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&  	    p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)  		return -EINVAL; -	p->parm.capture.readbuffers = 2; +	if (vfd->device_caps & V4L2_CAP_READWRITE) +		p->parm.capture.readbuffers = 2;  	ret = ops->vidioc_g_std(file, fh, &std);  	if (ret == 0)  		v4l2_video_std_frame_period(std, &p->parm.capture.timeperframe); |