On Wed, 12 Oct 2011, Oliver Neukum wrote: > Am Mittwoch, 12. Oktober 2011, 17:28:06 schrieb Alan Stern: > > > Arguably a driver is the wrong layer to do this. > > > > Are you suggesting the usb_runtime_suspend() should call > > usb_mark_last_busy() and pm_runtime_autosuspend() if usb_suspend_both() > > returns -EBUSY or -EAGAIN? > > Yes. I just sent a trial patch to Matthew. And after a little checking, I found the reason for the problem. Originally usbcore did this automatically. When we switched over to the runtime PM framework, the PM core did it. But the code to retry failed autosuspends was removed by Rafael Wysocki in commit f71648d73c1650b8b4aceb3856bebbde6daa3b86 (PM / Runtime: Remove idle notification after failing suspend), and the USB subsystem wasn't updated accordingly. I even Acked that patch -- apparently I had forgotten about the need for this mechanism. So it looks like putting it back into usbcore is the right thing to do. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html