• Peng Fan's avatar
    remoteproc: imx_rproc: Add support for poweroff and reboot · ff555fc5
    Peng Fan authored
    On some NXP platforms (e.g i.MX7ULP) the poweroff and reboot operations
    are done via a separate remote core.
    
    Typically Linux needs to send a message to the remote core and requests
    for poweroff or reboot.
    
    By default the communication between Linux core and the remote core is
    is done via a blocking mailbox mechanism but Linux doesn't allow blocking
    operations in the system off (reboot, power off) handlers.
    
    So, we need to make sure the mailbox message send operations do not block
    for this specific operations. Fortunately, Linux allows us to register
    handlers that are called in preparation of the system off operations.
    
    Thus, before carrying the power off or reboot preparations, just destroy
    the existing mailboxes and create them as non-blocking.
    
    Note that power off and restart are totally different operations and are
    not complementary.
    
    We introduce a new flag in the imx remoteproc per device data which tells
    us when a device needs this special setup. For now, only imx7ulp needs it.
    Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
    Reviewed-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
    Link: https://lore.kernel.org/r/20240822-imx_rproc-v3-2-6d943723945d@nxp.comSigned-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
    ff555fc5
imx_rproc.h 931 Bytes