aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Francois Moine <moinejf@free.fr>2010-01-05 02:44:00 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-02-26 13:10:29 -0500
commit52a9d3ef0034f29cef1c5616faa72aa394b01b65 (patch)
tree07d048f5f7e69d4c06615965fc759068424dba97
parent38719d45f937178718d49516d1f72208d5d72d22 (diff)
V4L/DVB (13897): gspca - main: Check the interface class at probe time.
The USB video interface was checked as having the number zero, but some webcams have other values. The test is now done on the interface class which may be either 255 (vendor spec) or 0 (class per interface). Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/gspca/gspca.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 61be007e8fb3..351cf8a658fc 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -2062,9 +2062,13 @@ int gspca_dev_probe(struct usb_interface *intf,
2062 PDEBUG(D_ERR, "Too many config"); 2062 PDEBUG(D_ERR, "Too many config");
2063 return -ENODEV; 2063 return -ENODEV;
2064 } 2064 }
2065
2066 /* check the interface class and ignore the sound interfaces */
2065 interface = &intf->cur_altsetting->desc; 2067 interface = &intf->cur_altsetting->desc;
2066 if (interface->bInterfaceNumber > 0) { 2068 if (interface->bInterfaceClass != USB_CLASS_VENDOR_SPEC
2067 PDEBUG(D_ERR, "intf != 0"); 2069 && interface->bInterfaceClass != USB_CLASS_PER_INTERFACE) {
2070 PDEBUG(D_PROBE, "Interface class %d not handled here",
2071 interface->bInterfaceClass);
2068 return -ENODEV; 2072 return -ENODEV;
2069 } 2073 }
2070 2074