Some devices without DVB support (such as the "Terratec Grabby" and
"Easycap DC-60") provide isochronous DVB USB endpoints with wMaxPacketSize set
to 0 bytes for all alt settings.

Ignore these endpoints and avoid registering a DVB device node and loading the
DVB driver extension.

Signed-off-by: Frank Schäfer <fschaefer....@googlemail.com>
Cc: sta...@kernel.org
---
 drivers/media/usb/em28xx/em28xx-cards.c |    9 ++++++++-
 1 Datei geändert, 8 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)

diff --git a/drivers/media/usb/em28xx/em28xx-cards.c 
b/drivers/media/usb/em28xx/em28xx-cards.c
index 54e0362..94536ee 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -3357,14 +3357,15 @@ static int em28xx_usb_probe(struct usb_interface 
*interface,
                                                dev->analog_ep_bulk =
                                                            e->bEndpointAddress;
                                        } else {
-                                               has_dvb = true;
                                                if (usb_endpoint_xfer_isoc(e)) {
                                                        dev->dvb_ep_isoc = 
e->bEndpointAddress;
                                                        if (size > 
dev->dvb_max_pkt_size_isoc) {
+                                                               has_dvb = true; 
/* see NOTE (~) */
                                                                
dev->dvb_max_pkt_size_isoc = size;
                                                                
dev->dvb_alt_isoc = i;
                                                        }
                                                } else {
+                                                       has_dvb = true;
                                                        dev->dvb_ep_bulk = 
e->bEndpointAddress;
                                                }
                                        }
@@ -3391,6 +3392,12 @@ static int em28xx_usb_probe(struct usb_interface 
*interface,
                         * so far. But there might be devices for which this
                         * logic is not sufficient...
                         */
+                       /* 
+                        * NOTE (~): some manufacturers (e.g. Terratec) disable
+                        * endpoints by setting wMaxPacketSize to 0 bytes for
+                        * all alt settings. So far, we've seen this for 
+                        * DVB isoc endpoints only.
+                        */
                }
        }
 
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to