PSCI: Invoke PM hooks only for the highest level
authorSoby Mathew <soby.mathew@arm.com>
Tue, 30 Jun 2015 10:00:24 +0000 (11:00 +0100)
committerSoby Mathew <soby.mathew@arm.com>
Wed, 5 Aug 2015 13:14:24 +0000 (14:14 +0100)
commit6590ce22955357d5d6f2bce13f84a1189e3b8d0f
tree321486d0e6c5978d7fd80e7da50e825396d00aa8
parentb48349eb07103e23cea3d890dd01d52c74667514
PSCI: Invoke PM hooks only for the highest level

This patch optimizes the invocation of the platform power management hooks for
ON, OFF and SUSPEND such that they are called only for the highest affinity
level which will be powered off/on. Earlier, the hooks were being invoked for
all the intermediate levels as well.

This patch requires that the platforms migrate to the new semantics of the PM
hooks.  It also removes the `state` parameter from the pm hooks as the `afflvl`
parameter now indicates the highest affinity level for which power management
operations are required.

Change-Id: I57c87931d8a2723aeade14acc710e5b78ac41732
include/bl31/services/psci1.0/psci.h
services/std_svc/psci1.0/psci_afflvl_off.c
services/std_svc/psci1.0/psci_afflvl_on.c
services/std_svc/psci1.0/psci_afflvl_suspend.c
services/std_svc/psci1.0/psci_common.c
services/std_svc/psci1.0/psci_entry.S
services/std_svc/psci1.0/psci_helpers.S
services/std_svc/psci1.0/psci_main.c
services/std_svc/psci1.0/psci_private.h
services/std_svc/psci1.0/psci_setup.c