From 2238dd778f56115bec8a39816a660f573e5db213 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Sun, 24 Jul 2016 09:27:12 +1000 Subject: slw: Move SPR setup calls away from assembly Move them to the C code so that rvwinkle_restore() is more generic and suitable for use for nap mode wakeup as well Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Stewart Smith --- asm/head.S | 9 --------- hw/slw.c | 4 ++++ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/asm/head.S b/asm/head.S index 05715e9..eb0054a 100644 --- a/asm/head.S +++ b/asm/head.S @@ -623,15 +623,6 @@ rvwinkle_restore: /* Get PIR */ mfspr %r31,SPR_PIR - /* Initialize per-core SPRs - * - * XXX We do it on each thread ... oh well, improve that later - */ - bl init_shared_sprs - - /* Initialize thread SPRs */ - bl init_replicated_sprs - /* Get that CPU stack base and use it to restore r13 */ GET_STACK(%r1,%r31) GET_CPU() diff --git a/hw/slw.c b/hw/slw.c index 9336679..aeb4ff1 100644 --- a/hw/slw.c +++ b/hw/slw.c @@ -87,6 +87,10 @@ static void slw_do_rvwinkle(void *data) enter_pm_state(1); + /* Restore SPRs */ + init_shared_sprs(); + init_replicated_sprs(); + /* Ok, it's ours again */ cpu->state = cpu_state_active; -- cgit v1.1