Commit 727c070c authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

media: common/saa7146: fix VFL direction for vbi output



The VBI output device didn't have VFL_DIR_TX set, so this didn't work
anymore since the V4L2 core thought that it was a capture device instead.

Fix this. Also drop invalid capabilities for the VBI output device.

Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent c07deaa1
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -589,12 +589,16 @@ int saa7146_register_device(struct video_device *vfd, struct saa7146_dev *dev,
	vfd->device_caps = V4L2_CAP_VIDEO_CAPTURE |
			   V4L2_CAP_READWRITE | V4L2_CAP_STREAMING;
	vfd->device_caps |= dev->ext_vv_data->capabilities;
	if (type == VFL_TYPE_VIDEO)
	if (type == VFL_TYPE_VIDEO) {
		vfd->device_caps &=
			~(V4L2_CAP_VBI_CAPTURE | V4L2_CAP_SLICED_VBI_OUTPUT);
	else
		vfd->device_caps &=
			~(V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_AUDIO);
	} else if (vfd->device_caps & V4L2_CAP_SLICED_VBI_OUTPUT) {
		vfd->vfl_dir = VFL_DIR_TX;
		vfd->device_caps &= ~(V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
				      V4L2_CAP_AUDIO | V4L2_CAP_TUNER);
	} else {
		vfd->device_caps &= ~V4L2_CAP_VIDEO_CAPTURE;
	}
	video_set_drvdata(vfd, dev);

	err = video_register_device(vfd, type, -1);