> Well, I think that that's what probe priorities actually for.
> I also think that typically ivars should be set by a bus driver.  So maybe 
> it's
> not such a good idea to pass data from probe to attach via ivars in child 
> drivers.
> But I could be mistaken about that.
> Practically speaking, you most likely don't have to worry about that for 
> drivers
> that return BUS_PROBE_SPECIFIC (=0) from their probe methods.  And there is 
> only a
> few "generic" drivers that can be handled on a case by case basis.

Newbus priorities where specifically implemented on my request by Doug Rabson 
to cater for fallback attachments: usb.h (the old code) contained a list of 
priorities. ugen had the lowest priority and attached if no one else did. An 
example was a keyboard with a built-in mouse on one interface. It would be 
attached by either mouse or keyboard but not both. An additional driver could 
probide both devices. We ended up implementing that differently though: 
attachment to interfaces instead of devices.

A probe should not pass any information to the attach phase if it can at all 
avoid it. Or at least that is the assumption. If a driver needs info in both 
phases, it needs to regenerate it again. The fact that usb_probe is called 
again is a kludge, specifically for the description.

I guess that documenting this kludge and updating the comment to state this 
fact would be sufficient to solve the problem.

freebsd-usb@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to