Lines Matching refs:xc
14 static void GLUE(X_PFX,ack_pending)(struct kvmppc_xive_vcpu *xc) in GLUE()
33 if (pipr >= xc->hw_cppr) in GLUE()
52 xc->pending |= 1 << cppr; in GLUE()
56 if (cppr >= xc->hw_cppr) in GLUE()
58 smp_processor_id(), cppr, xc->hw_cppr); in GLUE()
66 xc->hw_cppr = cppr; in GLUE()
125 static u32 GLUE(X_PFX,scan_interrupts)(struct kvmppc_xive_vcpu *xc, in GLUE()
132 while ((xc->mfrr != 0xff || pending != 0) && hirq == 0) { in GLUE()
152 if (prio >= xc->mfrr && xc->mfrr < xc->cppr) { in GLUE()
153 prio = xc->mfrr; in GLUE()
159 if (prio >= xc->cppr || prio > 7) in GLUE()
163 q = &xc->queues[prio]; in GLUE()
198 GLUE(X_PFX,source_eoi)(xc->vp_ipi, in GLUE()
199 &xc->vp_ipi_data); in GLUE()
241 xc->pending = pending; in GLUE()
261 xc->cppr = prio; in GLUE()
268 if (xc->cppr != xc->hw_cppr) { in GLUE()
269 xc->hw_cppr = xc->cppr; in GLUE()
270 __x_writeb(xc->cppr, __x_tima + TM_QW1_OS + TM_CPPR); in GLUE()
278 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
284 xc->GLUE(X_STAT_PFX,h_xirr)++; in GLUE()
287 GLUE(X_PFX,ack_pending)(xc); in GLUE()
298 xc->pending, xc->hw_cppr, xc->cppr); in GLUE()
301 old_cppr = xive_prio_to_guest(xc->cppr); in GLUE()
304 hirq = GLUE(X_PFX,scan_interrupts)(xc, xc->pending, scan_fetch); in GLUE()
307 hirq, xc->hw_cppr, xc->cppr); in GLUE()
337 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
338 u8 pending = xc->pending; in GLUE()
343 xc->GLUE(X_STAT_PFX,h_ipoll)++; in GLUE()
346 if (xc->server_num != server) { in GLUE()
350 xc = vcpu->arch.xive_vcpu; in GLUE()
362 hirq = GLUE(X_PFX,scan_interrupts)(xc, pending, scan_poll); in GLUE()
365 vcpu->arch.gpr[4] = hirq | (xc->cppr << 24); in GLUE()
370 static void GLUE(X_PFX,push_pending_to_hw)(struct kvmppc_xive_vcpu *xc) in GLUE()
374 pending = xc->pending; in GLUE()
375 if (xc->mfrr != 0xff) { in GLUE()
376 if (xc->mfrr < 8) in GLUE()
377 pending |= 1 << xc->mfrr; in GLUE()
390 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
395 xc->GLUE(X_STAT_PFX,h_cppr)++; in GLUE()
401 old_cppr = xc->cppr; in GLUE()
402 xc->cppr = cppr; in GLUE()
417 GLUE(X_PFX,push_pending_to_hw)(xc); in GLUE()
420 xc->hw_cppr = cppr; in GLUE()
431 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
440 xc->GLUE(X_STAT_PFX,h_eoi)++; in GLUE()
442 xc->cppr = xive_prio_from_guest(new_cppr); in GLUE()
520 GLUE(X_PFX,scan_interrupts)(xc, xc->pending, scan_eoi); in GLUE()
521 GLUE(X_PFX,push_pending_to_hw)(xc); in GLUE()
522 pr_devel(" after scan pending=%02x\n", xc->pending); in GLUE()
525 xc->hw_cppr = xc->cppr; in GLUE()
526 __x_writeb(xc->cppr, __x_tima + TM_QW1_OS + TM_CPPR); in GLUE()
534 struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu; in GLUE() local
538 xc->GLUE(X_STAT_PFX,h_ipi)++; in GLUE()
544 xc = vcpu->arch.xive_vcpu; in GLUE()
547 xc->mfrr = mfrr; in GLUE()
562 if (mfrr < xc->cppr) in GLUE()
563 __x_writeq(0, __x_trig_page(&xc->vp_ipi_data)); in GLUE()