On Wed, Jan 22, 2014 at 12:28:50PM +0100, Felix Deichmann wrote: > > Adding the Conexant modem with UQ_NO_UNION_NRM (or maybe something > else?) to usb_quirks would be the most elegant solution, right?
only part of the solution - you would get hit by the "no data interface" when it tries to get that bit because the code in umodoem_common_attach() only looks for data endpoints on the same interface as the control (http://nxr.netbsd.org/xref/src/sys/dev/usb/umodem_common.c#149). > Then umodem_get_caps() should be fixed, and OpenBSD (seems to > "brute-force" and iterate over all descriptors anyway) or Linux > (treats data if = 1, ctl if = 0 (?) for NO_UNION_NORMAL quirk) can > serve as an example. > But this is beyond me now :-). Probably iterating over all the interfaces iff we are about to spit the "no data interface" error would be an ok thing to do. In effect, we try nicely first and if that doesn't work then use brute force. IIRC the rest of the driver should be fine with that because the data interface is referenced separately to the control interface. -- Brett Lymn Staple Guns: because duct tape doesn't make that KerCHUNK sound - xkcd.com
