usbd config file parse behaviour
ticso at cicely12.cicely.de
Wed Mar 31 10:01:38 PST 2004
On Wed, Mar 31, 2004 at 09:32:11AM -0700, M. Warner Losh wrote:
> : 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.
ugen has a busy flag in his softc.
> 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).
Yes - a generic way would be best.
And of course reprobe is not everything.
In the USB as well as in the hot-plug PCI case there is a need for
functions to disable/enable ports/slots manually - I think that fits
with what you mean by 'quiesce'?
If someone with more knowledge about the generic part could implement
this then I could do the USB specific part.
> : 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.
usbdevs is not the right tool for this kind of functionality anyway.
devinfo -v with the usb devd support is already more generic then
Meating up the informations is simple once there is no static size
A userland tool for reprobe should be named more like devctl and be
able to operate on the whole device tree.
B.Walter BWCT http://www.bwct.de
ticso at bwct.de info at bwct.de
More information about the freebsd-hackers