From: Felix Deichmann <[email protected]>, Date: Tue, 21 Jan 2014 20:11:19 +0100
> Am 21.01.2014 13:15, schrieb Brett Lymn: >> Interface class is UICLASS_CDC, subclass >> UISUBCLASS_ABSTRACT_CONTROL_MODEL >> protocol is UIPROTO_CDC_AT. Umodem should attach on this. Maybe I >> borked the match... try changing: >> >> if (uaa->class != UICLASS_CDC || >> uaa->subclass != UISUBCLASS_ABSTRACT_CONTROL_MODEL || >> !(uaa->proto == UIPROTO_CDC_NOCLASS || uaa->proto == >> !UIPROTO_CDC_AT)) >> >> [...] >> >> see if that attaches... if it does then perhaps try: >> >> if (uaa->class != UICLASS_CDC || >> uaa->subclass != UISUBCLASS_ABSTRACT_CONTROL_MODEL || >> (uaa->proto != UIPROTO_CDC_NOCLASS && uaa->proto != >> UIPROTO_CDC_AT)) > > IMHO your *logic* is not to blame. > Applying De Morgan's laws result in > > !(uaa->proto == UIPROTO_CDC_NOCLASS || uaa->proto == UIPROTO_CDC_AT) > > and > > (uaa->proto != UIPROTO_CDC_NOCLASS && uaa->proto != UIPROTO_CDC_AT) > > being equal. > > Must be something else then. > Please also have a look at this site, issue seems identical: > http://daemonforums.org/showthread.php?p=46644 > > Conexant has quirks? Hi, Thanks for your information. According to this web site, OpenBSD can handle this kind of USB modem properly. http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/usb/umodem.c?annotate=1.54 It seems that 246th line and later handles my problem. OpenBSD's umodem_get_caps is different from NetBSD's one, and it has "int *data_iface_no" argument. It is used for detecting "no pointer to data interface". -- Ryo ONODERA // [email protected] PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
