Commit 5f225889 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

media: v4l2-dev.c: check for V4L2_CAP_STREAMING to enable streaming ioctls



Rather than checking which device type it is, just check the STREAMING
cap since that indicates support for streaming ioctls.

Some drivers only support READWRITE (typically MPEG encoders).

Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent 2f8c0810
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -556,6 +556,7 @@ static void determine_valid_ioctls(struct video_device *vdev)
	bool is_rx = vdev->vfl_dir != VFL_DIR_TX;
	bool is_tx = vdev->vfl_dir != VFL_DIR_RX;
	bool is_io_mc = vdev->device_caps & V4L2_CAP_IO_MC;
	bool has_streaming = vdev->device_caps & V4L2_CAP_STREAMING;

	bitmap_zero(valid_ioctls, BASE_VIDIOC_PRIVATE);

@@ -708,8 +709,8 @@ static void determine_valid_ioctls(struct video_device *vdev)
		SET_VALID_IOCTL(ops, VIDIOC_TRY_FMT, vidioc_try_fmt_sdr_out);
	}

	if (is_vid || is_vbi || is_sdr || is_tch || is_meta) {
		/* ioctls valid for video, vbi, sdr, touch and metadata */
	if (has_streaming) {
		/* ioctls valid for streaming I/O */
		SET_VALID_IOCTL(ops, VIDIOC_REQBUFS, vidioc_reqbufs);
		SET_VALID_IOCTL(ops, VIDIOC_QUERYBUF, vidioc_querybuf);
		SET_VALID_IOCTL(ops, VIDIOC_QBUF, vidioc_qbuf);