diff options
Diffstat (limited to 'sys')
-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; } |