aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/au0828
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@kernellabs.com>2009-05-27 22:25:36 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 18:07:20 -0400
commitee3436b82886c0cb295354fb7ebbeadf3ff22105 (patch)
treeb615e19f61791ac98ce95621d4b746fa4c7fc750 /drivers/media/video/au0828
parent64a00b43e63c916f1bf4f6b7f519db0e198ba9d4 (diff)
V4L/DVB (11924): au0828: Don't let device work unless connected to a high speed USB port
The au0828 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/au0828')
-rw-r--r--drivers/media/video/au0828/au0828-core.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/media/video/au0828/au0828-core.c b/drivers/media/video/au0828/au0828-core.c
index a1e4c0d769a6..2b3f64d7a7f1 100644
--- a/drivers/media/video/au0828/au0828-core.c
+++ b/drivers/media/video/au0828/au0828-core.c
@@ -181,6 +181,18 @@ static int au0828_usb_probe(struct usb_interface *interface,
181 le16_to_cpu(usbdev->descriptor.idProduct), 181 le16_to_cpu(usbdev->descriptor.idProduct),
182 ifnum); 182 ifnum);
183 183
184 /*
185 * Make sure we have 480 Mbps of bandwidth, otherwise things like
186 * video stream wouldn't likely work, since 12 Mbps is generally
187 * not enough even for most Digital TV streams.
188 */
189 if (usbdev->speed != USB_SPEED_HIGH) {
190 printk(KERN_ERR "au0828: Device initialization failed.\n");
191 printk(KERN_ERR "au0828: Device must be connected to a "
192 "high-speed USB 2.0 port.\n");
193 return -ENODEV;
194 }
195
184 dev = kzalloc(sizeof(*dev), GFP_KERNEL); 196 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
185 if (dev == NULL) { 197 if (dev == NULL) {
186 printk(KERN_ERR "%s() Unable to allocate memory\n", __func__); 198 printk(KERN_ERR "%s() Unable to allocate memory\n", __func__);