]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ARM: bL_switcher: Add runtime control notifier
authorDave Martin <dave.martin@linaro.org>
Mon, 10 Dec 2012 17:19:58 +0000 (17:19 +0000)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Mon, 23 Sep 2013 22:39:06 +0000 (18:39 -0400)
commit491990e29f5d285a1b75e74785e3160716b79040
tree72229acfce9b46c63f86ad383ff5f97ed0f8908b
parentc0f4375146a738bae23e48fa8b5383abf02177cb
ARM: bL_switcher: Add runtime control notifier

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: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Nicolas Pitre <nico@linaro.org>
arch/arm/common/bL_switcher.c
arch/arm/include/asm/bL_switcher.h