diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2009-12-05 20:39:32 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2009-12-05 20:39:32 +0000 |
commit | 02603e948223b1a06358dd7461f2dbf580c80564 (patch) | |
tree | 5ef9082d3e63408a4636af9f3e82b635ca2d4186 | |
parent | cfc14f5f1103ac3ce67e347bc8e67db42e4de312 (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.c | 8 |
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; } |