Re: [PATCH 2/2] USB: update last_busy time after autosuspend fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, November 03, 2011, Alan Stern wrote:
> 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 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 caused problems for the usbhid driver, because it fails
> autosuspend attempts as long as a key is being held down.  A companion
> patch changes the PM core's behavior, but we also need to change the
> USB core.  In particular, this patch (as1493) updates the device's
> last_busy time when an autosuspend fails, so that the PM core will
> retry the autosuspend in the future when the delay time expires
> again.
> 
> Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> Tested-by: Henrik Rydberg <rydberg@xxxxxxxxxxx>
> CC: <stable@xxxxxxxxxx>

Greg, are you going to take this one or do you want me to do that?

Rafael


> ---
> 
>  drivers/usb/core/driver.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> Index: usb-3.1/drivers/usb/core/driver.c
> ===================================================================
> --- usb-3.1.orig/drivers/usb/core/driver.c
> +++ usb-3.1/drivers/usb/core/driver.c
> @@ -1667,6 +1667,11 @@ int usb_runtime_suspend(struct device *d
>  		return -EAGAIN;
>  
>  	status = usb_suspend_both(udev, PMSG_AUTO_SUSPEND);
> +
> +	/* Allow a retry if autosuspend failed temporarily */
> +	if (status == -EAGAIN || status == -EBUSY)
> +		usb_mark_last_busy(udev);
> +
>  	/* The PM core reacts badly unless the return code is 0,
>  	 * -EAGAIN, or -EBUSY, so always return -EBUSY on an error.
>  	 */
> 
> 
> 

--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux