Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 290c0cfa authored by Devin Heitmueller's avatar Devin Heitmueller Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (12746): em28xx: do not create /dev/vbiX device if VBI not supported



Do not create the VBI device in cases where VBI is not supported on the target
em28xx chip.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: default avatarDevin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 365adee8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1131,7 +1131,7 @@ struct em28xx *em28xx_get_device(int minor,
	list_for_each_entry(h, &em28xx_devlist, devlist) {
		if (h->vdev->minor == minor)
			dev = h;
		if (h->vbi_dev->minor == minor) {
		if (h->vbi_dev && h->vbi_dev->minor == minor) {
			dev = h;
			*fh_type = V4L2_BUF_TYPE_VBI_CAPTURE;
		}
+16 −9
Original line number Diff line number Diff line
@@ -2504,7 +2504,9 @@ int em28xx_register_analog_devices(struct em28xx *dev)
	}

	/* Allocate and fill vbi video_device struct */
	dev->vbi_dev = em28xx_vdev_init(dev, &em28xx_video_template, "vbi");
	if (em28xx_vbi_supported(dev) == 1) {
		dev->vbi_dev = em28xx_vdev_init(dev, &em28xx_video_template,
						"vbi");

		/* register v4l2 vbi video_device */
		ret = video_register_device(dev->vbi_dev, VFL_TYPE_VBI,
@@ -2513,6 +2515,7 @@ int em28xx_register_analog_devices(struct em28xx *dev)
			em28xx_errdev("unable to register vbi device\n");
			return ret;
		}
	}

	if (em28xx_boards[dev->model].radio.type == EM28XX_RADIO) {
		dev->radio_dev = em28xx_vdev_init(dev, &em28xx_radio_template,
@@ -2531,8 +2534,12 @@ int em28xx_register_analog_devices(struct em28xx *dev)
			    dev->radio_dev->num);
	}

	em28xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n",
				dev->vdev->num, dev->vbi_dev->num);
	em28xx_info("V4L2 video device registered as /dev/video%d\n",
				dev->vdev->num);

	if (dev->vbi_dev)
		em28xx_info("V4L2 VBI device registered as /dev/vbi%d\n",
			    dev->vbi_dev->num);

	return 0;
}