Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72cc9ba3 authored by Frank Schaefer's avatar Frank Schaefer Committed by Mauro Carvalho Chehab
Browse files

[media] 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.

Signed-off-by: default avatarFrank Schäfer <fschaefer.oss@googlemail.com>
Tested-by: default avatarTimo Teräs <timo.teras@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent b4186971
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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.
			 */
		}
	}