kernel-hacking-2024-linux-s.../drivers/base/power
Rafael J. Wysocki c4bb3160c8 PM / Domains: Implement subdomain counters as atomic fields
Currently, pm_genpd_poweron() and pm_genpd_poweroff() need to take
the parent PM domain's lock in order to modify the parent's counter
of active subdomains in a nonracy way.  This causes the locking to be
considerably complex and in fact is not necessary, because the
subdomain counters may be implemented as atomic fields and they
won't have to be modified under a lock.

Replace the unsigned in sd_count field in struct generic_pm_domain
by an atomic_t one and modify the code in drivers/base/power/domain.c
to take this change into account.

This patch doesn't change the locking yet, that is going to be done
in a separate subsequent patch.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2011-08-25 15:33:43 +02:00
..
clock_ops.c PM: Use spinlock instead of mutex in clock management functions 2011-08-24 21:40:56 +02:00
domain.c PM / Domains: Implement subdomain counters as atomic fields 2011-08-25 15:33:43 +02:00
generic_ops.c PM: Introduce generic "noirq" callback routines for subsystems (v2) 2011-07-02 14:29:55 +02:00
main.c PM: Limit race conditions between runtime PM and system sleep (v2) 2011-07-06 10:51:58 +02:00
Makefile PM / Domains: Support for generic I/O PM domains (v8) 2011-07-02 14:29:55 +02:00
opp.c drivers/base/power/opp.c: fix dev_opp initial value 2011-07-26 16:49:41 -07:00
power.h
runtime.c PM / Runtime: Allow _put_sync() from interrupts-disabled context 2011-08-05 21:45:20 +02:00
sysfs.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
trace.c PM: Add "RTC" to PM trace time stamps to avoid confusion 2011-07-15 23:58:19 +02:00
wakeup.c PM / Wakeup: Remove useless synchronize_rcu() call 2011-05-17 23:19:19 +02:00