usbd config file parse behaviour

Bernd Walter 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
usbdevs.
Meating up the informations is simple once there is no static size
limit.
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 mailing list