usbd config file parse behaviour
M. Warner Losh
imp at bsdimp.com
Wed Mar 31 08:32:19 PST 2004
: I agree that it's bad to yank a device from under ugen automatically and
: reattach it to a better match.
I think it is good. Really. However, ugen should mark the device
busy when it is opened, and mark it as unbusy as closed and the
reprobe shouldn't happen if the device is busy. Otherwise, there's no
harm. ugen2 goes away, who cares. ugen0, ugen1, and ugen3 would
still be there. However, if a device is in use, the probe routines of
other divices may interfere.
Part of the problem is we can't tell a driver 'detach if you aren't
busy' vs 'detach now, your hardware is gone or about to be gone'.
Maybe we should fix that at the same time. There's also a desire from
the hot-plug bus people to have a 'quiesce' the device, which is
similar to the current suspend method, but with different semantics
(quiesce means stop using the hardware, while suspend says put the
hardware to sleep).
: How about adding a new ioctl on /dev/usb, eg USB_REPROBE to reset a device
: if a better match exists?
I don't want this to be USB specific. usb has enough kludgy hacks.
That's why we're in this mess. If we do something like this, then we
should do it for all devices on all busses.
: Could tack an option on to usbdevs to call it on requested devices.
Absolutely not. We want uniform behavior. It would be a nightmare to
manage a huge table in the kernel with exceptions.
More information about the freebsd-hackers