summaryrefslogtreecommitdiff
path: root/sys
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 /sys
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@.
Diffstat (limited to 'sys')
-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;
}