fvp: Rework when platform actions are performed
authorAchin Gupta <achin.gupta@arm.com>
Thu, 31 Jul 2014 16:45:51 +0000 (17:45 +0100)
committerSoby Mathew <soby.mathew@arm.com>
Tue, 19 Aug 2014 13:29:23 +0000 (14:29 +0100)
commit7d2ccfd79d919f0ee0d54bc7e9a317ec649f37ed
tree6210f820ea76d48561a2adcd85bb740dc258ac83
parent0a46e2c3408ed719294de834177363d9adfeca06
fvp: Rework when platform actions are performed

This patch reworks FVP port's power management implementation to perform
platform actions only when the platform exported hook is invoked for the highest
affinity level to enter/exit the OFF state.

For example, during a CPU_OFF operation, fvp_affinst_off() is called twice: for
affinity level 0 and affinity level 1 (in that order). CPU specific operations
are deferred until the next invocation if it is determined through a call to
psci_get_max_phys_off_afflvl() that this is CPU is the last in the cluster.

Similarly, during power up if the CPU is the first in the cluster, both CPU and
cluster specific operations are performed when fvp_affinst_on_finish() is
invoked for affinity level 1. Earlier, they were done across the two invocations
of the handler.

Change-Id: I4288ed3ba1385db36a69cc2e598deb219f209b8a
plat/fvp/fvp_pm.c