xive: Cleanup TM area on CPU calling
In case HostBoot leaves some gunk behind
@@ -2699,6 +2699,14 @@ void xive_cpu_callin(struct cpu_thread *cpu)
/* Set CPPR to 0 */
out_8(xs->tm_ring1 + TM_QW3_HV_PHYS + TM_CPPR, 0);
+ /* Pull everything */
+ in_be32(xs->tm_ring1 + TM_SPC_PULL_USR_CTX);
+ in_be32(xs->tm_ring1 + TM_SPC_PULL_OS_CTX);
+ in_be32(xs->tm_ring1 + TM_SPC_PULL_POOL_CTX);
+
+ /* Clear VT and LSI bit */
+ out_8(xs->tm_ring1 + TM_QW3_HV_PHYS + 8, 0);
+
/* Set VT to 1 */
out_8(xs->tm_ring1 + TM_QW3_HV_PHYS + TM_WORD2, 0x80);
