summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2009-12-05 20:39:32 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2009-12-05 20:39:32 +0000
commit02603e948223b1a06358dd7461f2dbf580c80564 (patch)
tree5ef9082d3e63408a4636af9f3e82b635ca2d4186
parentcfc14f5f1103ac3ce67e347bc8e67db42e4de312 (diff)
Ignore HID devices that have the same vendor and product ids than
devices actually supported by this device. The Linux driver confirms they exist. ok miod@ jsg@.
-rw-r--r--sys/dev/usb/uts.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/usb/uts.c b/sys/dev/usb/uts.c
index 96ee438f69e..aaa0312a1e0 100644
--- a/sys/dev/usb/uts.c
+++ b/sys/dev/usb/uts.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uts.c,v 1.25 2009/10/13 19:33:19 pirofti Exp $ */
+/* $OpenBSD: uts.c,v 1.26 2009/12/05 20:39:31 matthieu Exp $ */
/*
* Copyright (c) 2007 Robert Nagy <robert@openbsd.org>
@@ -134,10 +134,16 @@ int
uts_match(struct device *parent, void *match, void *aux)
{
struct usb_attach_arg *uaa = aux;
+ usb_interface_descriptor_t *id;
if (uaa->iface == NULL)
return (UMATCH_NONE);
+ /* Some eGalax touch screens are HID devices. ignore them */
+ id = usbd_get_interface_descriptor(uaa->iface);
+ if (id != NULL && id->bInterfaceClass == UICLASS_HID)
+ return (UMATCH_NONE);
+
return (usb_lookup(uts_devs, uaa->vendor, uaa->product) != NULL) ?
UMATCH_VENDOR_PRODUCT : UMATCH_NONE;
}