• Dave Martin's avatar
    ARM: bL_switcher: Add runtime control notifier · 491990e2
    Dave Martin authored
    Some subsystems will need to respond synchronously to runtime
    enabling and disabling of the switcher.
    
    This patch adds a dedicated notifier interface to support such
    subsystems.  Pre- and post- enable/disable notifications are sent
    to registered callbacks, allowing safe transition of non-b.L-
    transparent subsystems across these control transitions.
    
    Notifier callbacks may veto switcher (de)activation on pre notifications
    only.  Post notifications won't revert the action.
    
    If enabling or disabling of the switcher fails after the pre-change
    notification has been sent, subsystems which have registered
    notifiers can be left in an inappropriate state.
    
    This patch sends a suitable post-change notification on failure,
    indicating that the old state has been reestablished.
    
    For example, a failed initialisation will result in the following
    sequence:
    
        BL_NOTIFY_PRE_ENABLE
        /* switcher initialisation fails */
        BL_NOTIFY_POST_DISABLE
    
    It is the responsibility of notified subsystems to respond in an
    appropriate way.
    Signed-off-by: default avatarDave Martin <dave.martin@linaro.org>
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    491990e2
bL_switcher.c 16.9 KB