Skip to contentSkip to conversation

em28xx: ignore isoc DVB USB endpoints with wMaxPacketSize = 0 bytes for all alt settings

PATCH In review Frank Schäfer 2 participants 2 messages Mar 27, 2013 – Mar 28, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 em28xx: ignore isoc DVB USB endpoints with wMaxPacketSize = 0 bytes for all alt settings

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.

---
 drivers/media/usb/em28xx/em28xx-cards.c |    9 ++++++++-

1 Datei geändert, 8 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)

drivers/media/usb/em28xx/em28xx-cards.c +8 -1
index 54e0362..94536ee 100644
@@ -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.
+			 */
 		}
 	}
 
Signature · 1 line
1.7.10.4
Tested-by on v1 1/1
#1 lore raw
Quoted 9 lines · On Wed, 27 Mar 2013 21:07:41 +0100 Frank Schäfer…

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.

Fixes the false DVB detection on my "Terratec Grabby".