Module Name: src Committed By: christos Date: Sun Apr 6 02:01:43 UTC 2014
Modified Files: src/sys/dev/usb: umodem.c Log Message: PR/48715: Ryo ONODERA: Please support more USB modems To generate a diff of this commit: cvs rdiff -u -r1.65 -r1.66 src/sys/dev/usb/umodem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/umodem.c diff -u src/sys/dev/usb/umodem.c:1.65 src/sys/dev/usb/umodem.c:1.66 --- src/sys/dev/usb/umodem.c:1.65 Wed Oct 3 03:07:04 2012 +++ src/sys/dev/usb/umodem.c Sat Apr 5 22:01:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: umodem.c,v 1.65 2012/10/03 07:07:04 mlelstv Exp $ */ +/* $NetBSD: umodem.c,v 1.66 2014/04/06 02:01:43 christos Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -44,7 +44,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: umodem.c,v 1.65 2012/10/03 07:07:04 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: umodem.c,v 1.66 2014/04/06 02:01:43 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -98,12 +98,17 @@ umodem_match(device_t parent, cfdata_t m usb_interface_descriptor_t *id; int cm, acm; + id = usbd_get_interface_descriptor(uaa->iface); + if (uaa->subclass != UISUBCLASS_ABSTRACT_CONTROL_MODEL && + (id->bInterfaceClass == UICLASS_CDC_DATA && + id->bInterfaceSubClass == UISUBCLASS_DATA)) + return (UMATCH_IFACECLASS_IFACESUBCLASS); + if (uaa->class != UICLASS_CDC || uaa->subclass != UISUBCLASS_ABSTRACT_CONTROL_MODEL || !(uaa->proto == UIPROTO_CDC_NOCLASS || uaa->proto == UIPROTO_CDC_AT)) return (UMATCH_NONE); - id = usbd_get_interface_descriptor(uaa->iface); if (umodem_get_caps(uaa->device, &cm, &acm, id) == -1) return (UMATCH_NONE);