소스 검색

V4L/DVB (13925): gspca - main: Change the check of the USB video interface.

Some webcams have many interfaces with the same interface class, so the
previous interface check did not work.
The new code checks if the interface number is zero or the only one.

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Jean-Francois Moine 15 년 전
부모
커밋
b7a597d110
1개의 변경된 파일3개의 추가작업 그리고 6개의 파일을 삭제
  1. 3 6
      drivers/media/video/gspca/gspca.c

+ 3 - 6
drivers/media/video/gspca/gspca.c

@@ -2063,14 +2063,11 @@ int gspca_dev_probe(struct usb_interface *intf,
 		return -ENODEV;
 	}
 
-	/* check the interface class and ignore the sound interfaces */
+	/* the USB video interface must be the first one */
 	interface = &intf->cur_altsetting->desc;
-	if (interface->bInterfaceClass != USB_CLASS_VENDOR_SPEC
-	    && interface->bInterfaceClass != USB_CLASS_PER_INTERFACE) {
-		PDEBUG(D_PROBE, "Interface class %d not handled here",
-			interface->bInterfaceClass);
+	if (dev->config->desc.bNumInterfaces != 1 &&
+	    interface->bInterfaceNumber != 0)
 		return -ENODEV;
-	}
 
 	/* create the device */
 	if (dev_size < sizeof *gspca_dev)