• Fu Wei's avatar
    clocksource: arm_arch_timer: rework PPI selection · 4502b6bb
    Fu Wei authored
    Currently, the arch timer driver uses ARCH_TIMER_PHYS_SECURE_PPI to mean
    the driver will use the secure PPI *and* potentially also use the
    non-secure PPI. This is somewhat confusing.
    
    For arm64 it never makes sense to use the secure PPI, but we do anyway,
    inheriting this behaviour from 32-bit arm. For ACPI, we may not even
    have a valid secure PPI, so we need to be able to only request the
    non-secure PPI.
    
    To that end, this patch reworks the timer driver so that we can request
    the non-secure PPI alone. The PPI selection is split out into a new
    function, arch_timer_select_ppi(), and verification of the selected PPI
    is shifted out to callers (as DT may select the PPI by other means and
    must handle this anyway).
    
    We now consistently use arch_timer_has_nonsecure_ppi() to determine
    whether we must manage a non-secure PPI *in addition* to a secure PPI.
    When we only have a non-secure PPI, this returns false.
    Signed-off-by: default avatarFu Wei <fu.wei@linaro.org>
    Tested-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
    [Mark: reword commit message]
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    4502b6bb
arm_arch_timer.c 35.5 KB