• Achin Gupta's avatar
    Rework state management in the PSCI implementation · 84c9f100
    Achin Gupta authored
    This patch pulls out state management from the affinity level specific handlers
    into the top level functions specific to the operation
    i.e. psci_afflvl_suspend(), psci_afflvl_on() etc.
    
    In the power down path this patch will allow an affinity instance at level X to
    determine the state that an affinity instance at level X+1 will enter before the
    level specific handlers are called. This will be useful to determine whether a
    CPU is the last in the cluster during a suspend/off request and so on.
    
    Similarly, in the power up path this patch will allow an affinity instance at
    level X to determine the state that an affinity instance at level X+1 has
    emerged from, even after the level specific handlers have been called. This will
    be useful in determining whether a CPU is the first in the cluster during a
    on/resume request and so on.
    
    As before, while powering down, state is updated before the level specific
    handlers are invoked so that they can perform actions based upon their target
    state. While powering up, state is updated after the level specific handlers have
    been invoked so that they can perform actions based upon the state they emerged
    from.
    
    Change-Id: I40fe64cb61bb096c66f88f6d493a1931243cfd37
    84c9f100
psci_afflvl_suspend.c 16.8 KB