summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Thompson <thompsa@FreeBSD.org>2009-10-29 23:11:13 +0000
committerAndrew Thompson <thompsa@FreeBSD.org>2009-10-29 23:11:13 +0000
commitd51a8c13ead0f9e2102d02eceebb43ec16d77785 (patch)
tree95ca62555dbaf3d22c137241fa819ccf9a893193
parent2bb2691018aaa49a2f56bc443a6db8cc7c3f8651 (diff)
Notes
-rw-r--r--sys/dev/usb/serial/uipaq.c4
-rw-r--r--sys/dev/usb/usb.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/usb/serial/uipaq.c b/sys/dev/usb/serial/uipaq.c
index 79fe21e5c2c4..89a4cd254ab4 100644
--- a/sys/dev/usb/serial/uipaq.c
+++ b/sys/dev/usb/serial/uipaq.c
@@ -1103,6 +1103,10 @@ uipaq_probe(device_t dev)
if (uaa->info.bIfaceIndex != UIPAQ_IFACE_INDEX) {
return (ENXIO);
}
+ if (uaa->info.bInterfaceClass == UICLASS_IAD) {
+ DPRINTF("IAD detected - not UIPAQ serial device\n");
+ return (ENXIO);
+ }
return (usbd_lookup_id_by_uaa(uipaq_devs, sizeof(uipaq_devs), uaa));
}
diff --git a/sys/dev/usb/usb.h b/sys/dev/usb/usb.h
index 68c3caf6a056..119839831c1c 100644
--- a/sys/dev/usb/usb.h
+++ b/sys/dev/usb/usb.h
@@ -484,6 +484,8 @@ typedef struct usb_interface_assoc_descriptor usb_interface_assoc_descriptor_t;
#define UISUBCLASS_RF 0x01
#define UIPROTO_BLUETOOTH 0x01
+#define UICLASS_IAD 0xEF /* Interface Association Descriptor */
+
#define UICLASS_APPL_SPEC 0xfe
#define UISUBCLASS_FIRMWARE_DOWNLOAD 1
#define UISUBCLASS_IRDA 2