• Li Zhong's avatar
    KVM: PPC: Book 3S: XICS: Implement ICS P/Q states · 17d48610
    Li Zhong authored
    This patch implements P(Presented)/Q(Queued) states for ICS irqs.
    
    When the interrupt is presented, set P. Present if P was not set.
    If P is already set, don't present again, set Q.
    When the interrupt is EOI'ed, move Q into P (and clear Q). If it is
    set, re-present.
    
    The asserted flag used by LSI is also incorporated into the P bit.
    
    When the irq state is saved, P/Q bits are also saved, they need some
    qemu modifications to be recognized and passed around to be restored.
    KVM_XICS_PENDING bit set and saved should also indicate
    KVM_XICS_PRESENTED bit set and saved. But it is possible some old
    code doesn't have/recognize the P bit, so when we restore, we set P
    for PENDING bit, too.
    
    The idea and much of the code come from Ben.
    Signed-off-by: default avatarLi Zhong <zhong@linux.vnet.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    17d48610
book3s_xics.c 36.9 KB