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

Reply via email to