• Samuel Holland's avatar
    allwinner: Split native and SCPI-based PSCI implementations · fe753c97
    Samuel Holland authored
    
    
    In order to keep SCP firmware as optional, the original, limited native
    PSCI implementation was kept around as a fallback. This turned out to be
    a good decision, as some newer SoCs omit the ARISC, and thus cannot run
    SCP firmware.
    
    However, keeping the two implementations in one file makes things
    unnecessarily messy. First, it is difficult to compile out the
    SCPI-based implementation where it is not applicable. Second the check
    is done in each callback, while scpi_available is only updated at boot.
    This makes the individual callbacks unnecessarily complicated.
    
    It is cleaner to provide two entirely separate implementations in two
    separate files. The native implementation does not support any kind of
    CPU suspend, so its callbacks are greatly simplified. One function,
    sunxi_validate_ns_entrypoint, is shared between the two implementations.
    
    Finally, the logic for choosing between implementations is kept in a
    third file, to provide for platforms where only one implementation is
    applicable and the other is compiled out.
    
    Change-Id: I4914f07d8e693dbce218e0e2394bef15c42945f8
    Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
    fe753c97
sunxi_native_pm.c 1.96 KB