aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/em28xx
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@kernellabs.com>2009-05-27 22:23:37 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 18:07:19 -0400
commit64a00b43e63c916f1bf4f6b7f519db0e198ba9d4 (patch)
tree7a3fe7e07600c0853b6f353ee40964cc755ad343 /drivers/media/video/em28xx
parente2860d9621caec0b38d47df917a0ac00a083ffeb (diff)
V4L/DVB (11923): em28xx: Don't let device work unless connected to a high speed USB port
The em28xx basically just doesn't work at 12 Mbps. The isoc pipe needs nearly 200 Mbps for analog support, so users would see garbage video, and on the DVB/ATSC side scanning is likely to work but if the user tried to tune it would certainly appear to have failed. It's better to fail explicity up front and tell the user to plug into a USB 2.0 port, than to let the driver load and the user have weird problems with tuning and garbage video. Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/em28xx')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index fe2a471e5f64..72cab9bcdf95 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -2365,6 +2365,20 @@ static int em28xx_usb_probe(struct usb_interface *interface,
2365 ifnum, 2365 ifnum,
2366 interface->altsetting->desc.bInterfaceNumber); 2366 interface->altsetting->desc.bInterfaceNumber);
2367 2367
2368 /*
2369 * Make sure we have 480 Mbps of bandwidth, otherwise things like
2370 * video stream wouldn't likely work, since 12 Mbps is generally
2371 * not enough even for most Digital TV streams.
2372 */
2373 if (udev->speed != USB_SPEED_HIGH) {
2374 printk(DRIVER_NAME ": Device initialization failed.\n");
2375 printk(DRIVER_NAME ": Device must be connected to a high-speed"
2376 " USB 2.0 port.\n");
2377 em28xx_devused &= ~(1<<nr);
2378 retval = -ENODEV;
2379 goto err;
2380 }
2381
2368 if (nr >= EM28XX_MAXBOARDS) { 2382 if (nr >= EM28XX_MAXBOARDS) {
2369 printk(DRIVER_NAME ": Supports only %i em28xx boards.\n", 2383 printk(DRIVER_NAME ": Supports only %i em28xx boards.\n",
2370 EM28XX_MAXBOARDS); 2384 EM28XX_MAXBOARDS);