Multifunction USB devices

Jeff Walters jeff at
Tue Nov 18 17:13:43 PST 2003

I have an Epson printer/scanner combo device (CX5200) which works just 
fine either as a printer or as a scanner (when I add the vendor and 
product codes to usbdevs and uscanner.c) but not both simultaneously.  
Currently I compile ulpt and my customized uscanner as modules, and 
to switch functions I power the device off, unload/load the 
appropriate kernel module, and power the device back on.

I'm assuming a patch to add the CX5200 vendor/device codes to usbdevs 
and uscanner.c in the way I'm doing wouldn't be accepted into CURRENT 
since the resulting usage of it is a bit of a hack.  Is that right?

I wouldn't mind doing work over the next few months to create proper 
simultaneous support for both devices if it can be done with a 
reasonable level of effort and I can find some sources of 
information, and I can get some guidance from an experienced 
committer or architect to help do it right the first time.  Where 
should I go for discussion?  I'd like to learn ie. should I work to 
combine ulpt and uscanner into some kind of single umulti type of 
device driver, or should a virtual hub device of some kind be created 
to support both ulpt and uscanner simultaneously as-is (one USB 
endpoint, multiple interfaces), or should the system simply continue 
searching after matching a USB device, or will this be OBE with some 
other USB work going on, etc.


More information about the freebsd-current mailing list