• Marc Zyngier's avatar
    KVM: arm64: timer: Add support for SW-based deactivation · 5f592296
    Marc Zyngier authored
    In order to deal with the lack of active state, we need to use
    the mask/unmask primitives (after all, the active state is just an
    additional mask on top of the normal one).
    
    To avoid adding a bunch of ugly conditionals in the timer and vgic
    code, let's use a timer-specific irqdomain to deal with the state
    conversion. Yes, this is an unexpected use of irqdomains, but
    there is no reason not to be just as creative as the designers
    of the HW...
    
    This involves overloading the vcpu_affinity, set_irqchip_state
    and eoi callbacks so that the rest of the KVM code can continue
    ignoring the oddities of the underlying platform.
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    5f592296
arch_timer.c 32.9 KB