Index: sanei/sanei_usb.c =================================================================== RCS file: /cvsroot/sane/sane-backends/sanei/sanei_usb.c,v retrieving revision 1.58 diff -u -r1.58 sanei_usb.c --- sanei/sanei_usb.c 19 Feb 2009 13:57:45 -0000 1.58 +++ sanei/sanei_usb.c 21 Apr 2009 17:14:38 -0000 @@ -1243,6 +1243,20 @@ interface = &dev->config[c].interface[i].altsetting[a]; + /* don't try to read non-scanner device classes */ + if (interface->bInterfaceClass == 0x07) { + DBG (3, "sanei_usb_open: skipping Printer interface\n"); + continue; + } + if (interface->bInterfaceClass == 0x08) { + DBG (3, "sanei_usb_open: skipping Mass Storage interface\n"); + continue; + } + if (interface->bInterfaceClass == 0xff && i == 3) { + DBG (3, "sanei_usb_open: skipping second Vendor Specific interface\n"); + continue; + } + /* Now we look for usable endpoints */ for (num = 0; num < interface->bNumEndpoints; num++) { @@ -1282,6 +1296,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].int_in_ep); else + DBG (3, + "sanei_usb_open: saving int-in endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].int_in_ep = endpoint->bEndpointAddress; } @@ -1293,6 +1310,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].int_out_ep); else + DBG (3, + "sanei_usb_open: saving int-out endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].int_out_ep = endpoint->bEndpointAddress; } @@ -1310,6 +1330,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].bulk_in_ep); else + DBG (3, + "sanei_usb_open: saving bulk-in endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].bulk_in_ep = endpoint->bEndpointAddress; } @@ -1321,6 +1344,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].bulk_out_ep); else + DBG (3, + "sanei_usb_open: saving bulk-out endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].bulk_out_ep = endpoint->bEndpointAddress; } @@ -1338,6 +1364,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].iso_in_ep); else + DBG (3, + "sanei_usb_open: saving isochronous-in endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].iso_in_ep = endpoint->bEndpointAddress; } @@ -1349,6 +1378,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].iso_out_ep); else + DBG (3, + "sanei_usb_open: saving isochronous-out endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].iso_out_ep = endpoint->bEndpointAddress; } @@ -1366,6 +1398,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].control_in_ep); else + DBG (3, + "sanei_usb_open: saving control-in endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].control_in_ep = endpoint->bEndpointAddress; } @@ -1377,6 +1412,9 @@ "(address: 0x%02x), ignoring the new one\n", devices[devcount].control_out_ep); else + DBG (3, + "sanei_usb_open: saving control-out endpoint (address: 0x%02x)\n", + endpoint->bEndpointAddress); devices[devcount].control_out_ep = endpoint->bEndpointAddress; }