android_kernel_motorola_sm6225/include
Rafael J. Wysocki 5063ce1571 PM / Domains: Allow generic PM domains to have multiple masters
Currently, for a given generic PM domain there may be only one parent
domain (i.e. a PM domain it depends on).  However, there is at least
one real-life case in which there should be two parents (masters) for
one PM domain (the A3RV domain on SH7372 turns out to depend on the
A4LC domain and it depends on the A4R domain and the same time). For
this reason, allow a PM domain to have multiple parents (masters) by
introducing objects representing links between PM domains.

The (logical) links between PM domains represent relationships in
which one domain is a master (i.e. it is depended on) and another
domain is a slave (i.e. it depends on the master) with the rule that
the slave cannot be powered on if the master is not powered on and
the master cannot be powered off if the slave is not powered off.
Each struct generic_pm_domain object representing a PM domain has
two lists of links, a list of links in which it is a master and
a list of links in which it is a slave.  The first of these lists
replaces the list of subdomains and the second one is used in place
of the parent pointer.

Each link is represented by struct gpd_link object containing
pointers to the master and the slave and two struct list_head
members allowing it to hook into two lists (the master's list
of "master" links and the slave's list of "slave" links).  This
allows the code to get to the link from each side (either from
the master or from the slave) and follow it in each direction.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2011-08-25 15:33:44 +02:00
..
acpi Merge branch 'apei-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2011-08-03 21:53:27 -10:00
asm-generic mm: fix __page_to_pfn for a const struct page argument 2011-08-17 13:00:20 -07:00
crypto
drm drm: Separate EDID Header Check from EDID Block Check 2011-08-04 14:39:35 +01:00
keys
linux PM / Domains: Allow generic PM domains to have multiple masters 2011-08-25 15:33:44 +02:00
math-emu
media [media] V4L: initial driver for ov5642 CMOS sensor 2011-07-27 17:56:09 -03:00
mtd
net ipv4: route non-local sources for raw socket 2011-08-07 22:52:32 -07:00
pcmcia Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2011-07-31 06:23:08 -10:00
rdma atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
rxrpc atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
scsi Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd 2011-08-06 22:56:03 -07:00
sound ASoC: omap: Update e-mail address of Jarkko Nikula 2011-08-12 11:45:10 +09:00
target target: Bump version to v4.1.0-rc1-ml 2011-07-22 09:37:49 +00:00
trace Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2011-08-19 10:47:07 -07:00
video OMAP: DSS2: Remove unused opt_clock_available 2011-07-25 10:22:05 +03:00
xen xen/balloon: memory hotplug support for Xen balloon driver 2011-07-25 20:57:08 -07:00
Kbuild