1
0
Fork 0
alistair23-linux/drivers/base/power
Ulf Hansson 2ed127697e PM / Domains: Power on the PM domain right after attach completes
Vast amount of platform drivers which enables runtime PM, don't invoke
a pm_runtime_get_sync() while probing their devices.

Instead, once they have turned on their PM resourses during ->probe()
and are ready to handle I/O, these invokes pm_runtime_set_active() to
synchronize its state towards the runtime PM core.

From the runtime PM point of view this behavior is perfectly acceptable,
but we encounter probe failures if their corresponding devices resides
in the generic PM domain. The issues are observed for those devices,
which requires its PM domain to stay powered during ->probe() since
that's not being controlled.

While using the generic OF-based PM domain look-up, a device's PM
domain will be attached during the probe sequence. For this path, let's
fix the probe failures, by simply power on the PM domain right after
when it's been attached to the device.

The generic PM domain stays powered until all of its devices becomes
runtime PM enabled and runtime PM suspended.

The old SOCs which makes use of the generic PM domain but don't use the
generic OF-based PM domain look-up, will not be affected from this
change.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-11-20 21:38:50 +01:00
..
Makefile PM: Add pm_runtime_suspend|resume_force functions 2014-03-02 00:18:15 +01: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: Power on the PM domain right after attach completes 2014-11-20 21:38:50 +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: fix async suspend_late/freeze_late error handling 2014-10-27 18:42:26 +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 Merge branches 'pm-runtime' and 'pm-sleep' 2014-03-20 13:25:54 +01: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