Originally, the runtime PM core would send an idle notification whenever a suspend attempt failed. The idle callback routine could then schedule a delayed suspend for some time later. However this behavior caused difficulties in the PCI subsystem and was changed by commit f71648d73c1650b8b4aceb3856bebbde6daa3b86 (PM / Runtime: Remove idle notification after failing suspend). No notifications were sent, and there was no clear mechanism to retry failed suspends. This in turn caused a problem for the usbhid driver, because it fails autosuspend attempts as long as a key is being held down. The following two patches fix this problem by making the PM core automatically retry failed autosuspends (so long as the next autosuspend expiration time is in the future) and by making the USB core update a device's last_busy field when an autosuspend fails. The patches are independent, so Rafael can take 1/2 and Greg can take 2/2. These patches should also be applied to all stable kernels that include the commit mentioned above, which at this point is probably all of them. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html