Am Samstag, 31. Dezember 2011, 16:33:12 schrieb Alan Stern:
Nothing has changed in the USB layer -- it has always been true that
devices could be reset during a suspend/resume cycle. This isn't a
matter of how the stack is written or anything like that; some
motherboards simply do not provide suspend power to their USB
controllers. Or the firmware reinitializes the controllers and
attached devices during resume, forcing Linux's USB core to reset
every device on the affected buses.
When it comes to suspend/resume, there are almost no guarantees. :-(
We are definitely going through do_unbind_rebind(). But I don't think
it matters why we got there. We seem to be calling probe() too early.
And we need to guarantee that a driver can request firmware in probe()
So something has changed in the resume code path further up.
Regards
Oliver