linux/drivers/base/power
Ulf Hansson c0356db7d1 PM / Domains: Eliminate the mutex for the generic_pm_domain_data
While adding devices to their PM domains, dev_pm_qos_add_notifier() was
invoked while allocating the generic_pm_domain_data for the device.

Since the generic_pm_domain_data's device pointer will be assigned
after allocation, the ->genpd_dev_pm_qos_notifier() callback could be
called prior having a valid pointer to the device. Similar scenario
existed while removing a device from a genpd.

To cope with these scenarios a mutex was used to protect the pointer to
the device.

By re-order the sequence for when dev_pm_qos_add|remove_notifier() are
invoked, we make sure the ->genpd_dev_pm_qos_notifier() callback are
always called with a valid device pointer available.

In this way, we eliminate the need for protecting the pointer and thus
we can remove the mutex from the struct generic_pm_domain_data.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2015-02-03 22:56:53 +01:00
..
clock_ops.c PM: Drop CONFIG_PM_RUNTIME from the driver core 2014-12-04 00:46:58 +01: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_governor.c PM: Drop CONFIG_PM_RUNTIME from the driver core 2014-12-04 00:46:58 +01:00
domain.c PM / Domains: Eliminate the mutex for the generic_pm_domain_data 2015-02-03 22:56:53 +01: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
Makefile PM: Add pm_runtime_suspend|resume_force functions 2014-03-02 00:18:15 +01:00
opp.c PM / OPP: take RCU lock in dev_pm_opp_get_opp_count 2014-12-18 01:42:49 +01:00
power.h PM: Drop CONFIG_PM_RUNTIME from the driver core 2014-12-04 00:46:58 +01:00
qos.c PM: Drop CONFIG_PM_RUNTIME from the driver core 2014-12-04 00:46:58 +01:00
runtime.c PM: Drop CONFIG_PM_RUNTIME from the driver core 2014-12-04 00:46:58 +01:00
sysfs.c PM: Drop CONFIG_PM_RUNTIME from the driver core 2014-12-04 00:46:58 +01: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