• Achin Gupta's avatar
    psci: rectify and homogenise generic code · 0959db5c
    Achin Gupta authored
    This patch performs a major rework of the psci generic implementation
    to achieve the following:
    
    1. replace recursion with iteration where possible to aid code
       readability e.g. affinity instance states are changed iteratively
       instead of recursively.
    
    2. acquire pointers to affinity instance nodes at the beginning of a
       psci operation. All subsequent actions use these pointers instead
       of calling psci_get_aff_map_node() repeatedly e.g. management of
       locks has been abstracted under functions which use these pointers
       to ensure correct ordering. Helper functions have been added to
       create these abstractions.
    
    3. assertions have been added to cpu level handlers to ensure correct
       state transition
    
    4. the affinity level extents specified to various functions have the
       same meaning i.e. start level is always less than the end level.
    
    Change-Id: If0508c3a7b20ea3ddda2a66128429382afc3dfc8
    0959db5c
psci_common.c 21 KB