mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
spapr/xive: Add source status helpers
and use them to set and test the ASSERTED bit of LSI sources. Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20211004212141.432954-1-clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
afc9fcde55
commit
621f70d210
4 changed files with 32 additions and 12 deletions
|
@ -242,7 +242,7 @@ int kvmppc_xive_source_reset_one(XiveSource *xsrc, int srcno, Error **errp)
|
|||
|
||||
if (xive_source_irq_is_lsi(xsrc, srcno)) {
|
||||
state |= KVM_XIVE_LEVEL_SENSITIVE;
|
||||
if (xsrc->status[srcno] & XIVE_STATUS_ASSERTED) {
|
||||
if (xive_source_is_asserted(xsrc, srcno)) {
|
||||
state |= KVM_XIVE_LEVEL_ASSERTED;
|
||||
}
|
||||
}
|
||||
|
@ -321,7 +321,7 @@ uint64_t kvmppc_xive_esb_rw(XiveSource *xsrc, int srcno, uint32_t offset,
|
|||
if (xive_source_irq_is_lsi(xsrc, srcno) &&
|
||||
offset == XIVE_ESB_LOAD_EOI) {
|
||||
xive_esb_read(xsrc, srcno, XIVE_ESB_SET_PQ_00);
|
||||
if (xsrc->status[srcno] & XIVE_STATUS_ASSERTED) {
|
||||
if (xive_source_is_asserted(xsrc, srcno)) {
|
||||
kvmppc_xive_esb_trigger(xsrc, srcno);
|
||||
}
|
||||
return 0;
|
||||
|
@ -359,11 +359,7 @@ void kvmppc_xive_source_set_irq(void *opaque, int srcno, int val)
|
|||
return;
|
||||
}
|
||||
} else {
|
||||
if (val) {
|
||||
xsrc->status[srcno] |= XIVE_STATUS_ASSERTED;
|
||||
} else {
|
||||
xsrc->status[srcno] &= ~XIVE_STATUS_ASSERTED;
|
||||
}
|
||||
xive_source_set_asserted(xsrc, srcno, val);
|
||||
}
|
||||
|
||||
kvmppc_xive_esb_trigger(xsrc, srcno);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue