M. Warner Losh
imp at bsdimp.com
Sat Aug 7 21:13:44 PDT 2004
In message: <4115A736.9000705 at tellme3times.com>
Chris <chris at tellme3times.com> writes:
: Darren Pilgrim wrote:
: >>From: M. Warner Losh
: >>In message: <41124C8B.2060902 at tellme3times.com>
: >> Chris <chris at tellme3times.com> writes:
: >>: What I am trying to determine is why my multifunction
: >>: receives only one of the two drivers. Is it because the printer
: >>: not respond properly? Is it because the printer is not defined? I
: >>: have many questions here.
: >>Yes. Usb is a little complicated in this area, and there are a number
: >>of details that are hard to get right. It wouldn't surprise me if the
: >>current set of drivers are less than completely optimal.
: >On a bit of a side-track, I'm wondering if it could be due to how the
: >multifunction device presents itself? A bit back in this thread someone
: >mentioned that a pointer must be present for a driver to attach to a
: >device. If there is only one pointer for a device, only one driver may
: >attach. Since a single USB bus can have a LOT of devices and each
: >device's capabilities are determined through the presence of usage
: >pages, I see two ways for a multifunction device to present itself:
: >- A single device ID with more than one usage page. All the
: >functionality is there and is compatible with FreeBSD drivers, but since
: >there is only one device probed on the bus, only one driver may attach.
: >Perhaps a "simple" mux driver would be useful?
: >- A multiple single-usage device IDs. Same functionality as before, but
: >now FreeBSD can probe unique printer and scanner devices and thus let
: >both ulpt and uscanner attach simutaneously.
: >Am I way off base?
: What I would like to know is where are these tests done. Or should I say
: where does USB start to load and what are the steps in between.
In usb_subr.c, routine usbd_probe_and_attach is where the child's
config stuff is done that I posted before.
More information about the freebsd-current