linux/drivers/base/power
Rafael J. Wysocki 732468f790 PM / sleep: Handle failures in device_suspend_late() consistently
[ Upstream commit 3a17fb329d ]

Grygorii Strashko reports:

 The PM runtime will be left disabled for the device if its
 .suspend_late() callback fails and async suspend is not allowed
 for this device. In this case device will not be added in
 dpm_late_early_list and dpm_resume_early() will ignore this
 device, as result PM runtime will be disabled for it forever
 (side effect: after 8 subsequent failures for the same device
 the PM runtime will be reenabled due to disable_depth overflow).

To fix this problem, add devices to dpm_late_early_list regardless
of whether or not device_suspend_late() returns errors for them.

That will ensure failures in there to be handled consistently for
all devices regardless of their async suspend/resume status.

Reported-by: Grygorii Strashko <grygorii.strashko@ti.com>
Tested-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2016-06-06 19:11:10 -04:00
..
clock_ops.c PM / clk: Fix crash in clocks management code if !CONFIG_PM_RUNTIME 2014-10-03 15:51:39 +02:00
common.c PM / Domains: Add APIs to attach/detach a PM domain for a device 2014-09-22 15:57:40 +02:00
domain.c PM / Domains: Fix initial default state of the need_restore flag 2014-11-11 22:28:44 +01:00
domain_governor.c PM / domains: Remove default_stop_ok() API 2014-09-09 00:46:13 +02:00
generic_ops.c PM / Runtime: Spelling s/competing/completing/ 2014-03-26 16:33:53 +01:00
main.c PM / sleep: Handle failures in device_suspend_late() consistently 2016-06-06 19:11:10 -04:00
Makefile PM: Add pm_runtime_suspend|resume_force functions 2014-03-02 00:18:15 +01:00
opp.c Merge branch 'pm-cpufreq' 2014-06-03 23:13:20 +02:00
power.h PM / QoS: Rename device resume latency QoS items 2014-02-11 00:35:23 +01:00
qos.c PM / QoS: Add type to dev_pm_qos_add_ancestor_request() arguments 2014-02-11 00:36:00 +01:00
runtime.c PM / Runtime: Fix error path in pm_runtime_force_resume() 2016-06-03 11:30:27 -04:00
sysfs.c PM / sysfs: avoid shadowing variables 2014-09-08 15:40:18 +02:00
trace.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
wakeup.c PM / sleep: Mechanism for aborting system suspends unconditionally 2014-09-01 13:47:49 +02:00