On Fri, Oct 11, 2002 at 09:56:02PM +0200, Oliver Neukum wrote: > + * Caller must make sure that disconnect processing waits for this to > complete
Line wrap, can't apply :) > + usb_reap_interfaces(dev); /* get rid of all interfaces */ > + > + if ((ret = usb_physical_set_conf(dev, configuration))) > + goto err; > + > + dev->desired_conf = configuration; /* for pm */ > + > + ret = usb_logical_register_dev(dev); /* reevaluate device */ This still causes two usb devices to be registered (hint, you never called device_unregister() on the main usb device, yet you just called device_register() on it again, not nice...) Yes, I'm sorry I haven't documented how all of this works yet. Right now I'm buried in a mess of this stuff, trying to fix the device reference counting logic (by making usb_get_dev() and friends use the device core reference count, not our own, as we should not have two different counts.) Hopefully this will be done in a few days, and then I'll get a breather to explain the whole thing. Again, very sorry for the delay (in my defense, the code is there, and is working (with the exception of an added if() that is causing root hub unregistration problems) and should be self explanatory :) thanks, greg k-h ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel