Lines Matching refs:xc
14 static void GLUE(X_PFX,ack_pending)(struct kvmppc_xive_vcpu *xc) in GLUE()
40 xc->pending |= 1 << cppr; in GLUE()
44 if (cppr >= xc->hw_cppr) in GLUE()
46 smp_processor_id(), cppr, xc->hw_cppr); in GLUE()
54 xc->hw_cppr = cppr; in GLUE()
115 static u32 GLUE(X_PFX,scan_interrupts)(struct kvmppc_xive_vcpu *xc, in GLUE()
122 while ((xc->mfrr != 0xff || pending != 0) && hirq == 0) { in GLUE()
134 if (prio >= xc->cppr || prio > 7) { in GLUE()
135 if (xc->mfrr < xc->cppr) { in GLUE()
136 prio = xc->mfrr; in GLUE()
143 q = &xc->queues[prio]; in GLUE()
178 GLUE(X_PFX,source_eoi)(xc->vp_ipi, in GLUE()
179 &xc->vp_ipi_data); in GLUE()
219 if (prio >= xc->mfrr && xc->mfrr < xc->cppr) { in GLUE()
220 prio = xc->mfrr; in GLUE()
237 xc->pending = pending; in GLUE()
257 xc->cppr = prio; in GLUE()
264 if (xc->cppr != xc->hw_cppr) { in GLUE()
265 xc->hw_cppr = xc->cppr; in GLUE()
266 __x_writeb(xc->cppr, __x_tima + TM_QW1_OS + TM_CPPR); in GLUE()
274 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
280 xc->GLUE(X_STAT_PFX,h_xirr)++; in GLUE()
283 GLUE(X_PFX,ack_pending)(xc); in GLUE()
286 xc->pending, xc->hw_cppr, xc->cppr); in GLUE()
289 old_cppr = xive_prio_to_guest(xc->cppr); in GLUE()
292 hirq = GLUE(X_PFX,scan_interrupts)(xc, xc->pending, scan_fetch); in GLUE()
295 hirq, xc->hw_cppr, xc->cppr); in GLUE()
325 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
326 u8 pending = xc->pending; in GLUE()
331 xc->GLUE(X_STAT_PFX,h_ipoll)++; in GLUE()
334 if (xc->server_num != server) { in GLUE()
338 xc = vcpu->arch.xive_vcpu; in GLUE()
350 hirq = GLUE(X_PFX,scan_interrupts)(xc, pending, scan_poll); in GLUE()
353 vcpu->arch.regs.gpr[4] = hirq | (xc->cppr << 24); in GLUE()
358 static void GLUE(X_PFX,push_pending_to_hw)(struct kvmppc_xive_vcpu *xc) in GLUE()
362 pending = xc->pending; in GLUE()
363 if (xc->mfrr != 0xff) { in GLUE()
364 if (xc->mfrr < 8) in GLUE()
365 pending |= 1 << xc->mfrr; in GLUE()
377 struct kvmppc_xive_vcpu *xc) in GLUE()
382 for (prio = xc->cppr; prio < KVMPPC_XIVE_Q_COUNT; prio++) { in GLUE()
383 struct xive_q *q = &xc->queues[prio]; in GLUE()
415 if (xc->server_num == state->act_server) in GLUE()
444 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
450 xc->GLUE(X_STAT_PFX,h_cppr)++; in GLUE()
456 old_cppr = xc->cppr; in GLUE()
457 xc->cppr = cppr; in GLUE()
472 GLUE(X_PFX,push_pending_to_hw)(xc); in GLUE()
491 GLUE(X_PFX,scan_for_rerouted_irqs)(xive, xc); in GLUE()
495 xc->hw_cppr = cppr; in GLUE()
506 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
515 xc->GLUE(X_STAT_PFX,h_eoi)++; in GLUE()
517 xc->cppr = xive_prio_from_guest(new_cppr); in GLUE()
595 GLUE(X_PFX,scan_interrupts)(xc, xc->pending, scan_eoi); in GLUE()
596 GLUE(X_PFX,push_pending_to_hw)(xc); in GLUE()
597 pr_devel(" after scan pending=%02x\n", xc->pending); in GLUE()
600 xc->hw_cppr = xc->cppr; in GLUE()
601 __x_writeb(xc->cppr, __x_tima + TM_QW1_OS + TM_CPPR); in GLUE()
609 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
613 xc->GLUE(X_STAT_PFX,h_ipi)++; in GLUE()
619 xc = vcpu->arch.xive_vcpu; in GLUE()
622 xc->mfrr = mfrr; in GLUE()
637 if (mfrr < xc->cppr) in GLUE()
638 __x_writeq(0, __x_trig_page(&xc->vp_ipi_data)); in GLUE()