Hi, I have gotten strange dmesg output for umodem(4). How to avoid this strangeness?
My Conexant USB modem is not detected as umodem(4). I have added the following lines like ubt(4) like http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/ubt.c.diff?r1=1.48&r2=1.49 Index: umodem.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/umodem.c,v retrieving revision 1.65 diff -u -r1.65 umodem.c --- umodem.c 3 Oct 2012 07:07:04 -0000 1.65 +++ umodem.c 20 Jan 2014 09:17:08 -0000 @@ -91,12 +91,33 @@ CFATTACH_DECL_NEW(umodem, sizeof(struct umodem_softc), umodem_match, umodem_attach, umodem_detach, umodem_activate); +/* + * To match or ignore forcibly, add + * + * { { VendorID, ProductID }, UMATCH_VENDOR_PRODUCT|UMATCH_NONE } + * + * to the umodem_dev list. + */ +const struct umodem_devno { + struct usb_devno devno; + int match; +} umodem_dev[] = { + { { USB_VENDOR_CONEXANT, USB_PRODUCT_CONEXANT_USB56KMODEM1}, + UMATCH_VENDOR_PRODUCT}, +}; +#define umodem_lookup(vendor, product) \ + ((const struct umodem_devno *)usb_lookup(umodem_dev, vendor, product)) + int umodem_match(device_t parent, cfdata_t match, void *aux) { struct usbif_attach_arg *uaa = aux; usb_interface_descriptor_t *id; int cm, acm; + const struct umodem_devno *dev; + + if ((dev = umodem_lookup(uaa->vendor, uaa->product)) != NULL) + return dev->match; if (uaa->class != UICLASS_CDC || uaa->subclass != UISUBCLASS_ABSTRACT_CONTROL_MODEL || Strange dmesg output is here. umodem0 is detected, but "no pointer to data interface" and it cannot connect to ucom(4). Of course, my modem should be recognized as one device. umodem0 at uhub3 port 2 configuration 1 interface 0 umodem0: Conexant USB Modem, rev 1.10/1.00, addr 11, iclass 2/2 umodem0: no pointer to data interface umodem1 at uhub3 port 2 configuration 1 interface 1 umodem1: Conexant USB Modem, rev 1.10/1.00, addr 11, iclass 10/0 umodem1: data interface 1, has CM over data, has break ucom0 at umodem1 How to avoid such strangeness? umodem1 and ucom0 works fine with comms/efax-gtk. Thank you. -- Ryo ONODERA // [email protected] PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
