Commit 22580f7c authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] em28xx: make sure that the device has video

There are some devices, like Terratec Cinergy HTC, where
while the device supports analog TV, the driver is not
capable yet of handling it, because the analog TV driver
was not written.

So, don't bind the em28xx-v4l drivers on such devices.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 41a5e7ea
...@@ -3468,7 +3468,7 @@ static int em28xx_usb_probe(struct usb_interface *interface, ...@@ -3468,7 +3468,7 @@ static int em28xx_usb_probe(struct usb_interface *interface,
/* save our data pointer in this interface device */ /* save our data pointer in this interface device */
usb_set_intfdata(interface, dev); usb_set_intfdata(interface, dev);
/* allocate device struct */ /* allocate device struct and check if the device is a webcam */
mutex_init(&dev->lock); mutex_init(&dev->lock);
retval = em28xx_init_dev(dev, udev, interface, nr); retval = em28xx_init_dev(dev, udev, interface, nr);
if (retval) { if (retval) {
...@@ -3484,6 +3484,15 @@ static int em28xx_usb_probe(struct usb_interface *interface, ...@@ -3484,6 +3484,15 @@ static int em28xx_usb_probe(struct usb_interface *interface,
try_bulk = usb_xfer_mode > 0; try_bulk = usb_xfer_mode > 0;
} }
/* Disable V4L2 if the device doesn't have a decoder */
if (has_video &&
dev->board.decoder == EM28XX_NODECODER && !dev->board.is_webcam) {
printk(DRIVER_NAME
": Currently, V4L2 is not supported on this model\n");
has_video = false;
dev->has_video = false;
}
/* Select USB transfer types to use */ /* Select USB transfer types to use */
if (has_video) { if (has_video) {
if (!dev->analog_ep_isoc || (try_bulk && dev->analog_ep_bulk)) if (!dev->analog_ep_isoc || (try_bulk && dev->analog_ep_bulk))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment