diff options
author | Paul Mackerras <paulus@ozlabs.org> | 2025-01-31 09:28:39 +0300 |
---|---|---|
committer | Madhavan Srinivasan <maddy@linux.ibm.com> | 2025-02-26 18:46:48 +0300 |
commit | 2b0a438d5380c32817e1b2c883bd0494461e9f4f (patch) | |
tree | c1f7914006c1046af47e6b418d0bcbd42f365750 | |
parent | 78099fe1e3b5b72d4627f360b59a3470b1547bad (diff) | |
download | linux-2b0a438d5380c32817e1b2c883bd0494461e9f4f.tar.xz |
powerpc/microwatt: Define an idle power-save function
This uses the 'wait' instruction to pause instruction execution when
idle until an interrupt occurs.
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/Z5xtl1m_Gqc-HLjY@thinks.paulus.ozlabs.org
-rw-r--r-- | arch/powerpc/platforms/microwatt/setup.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/microwatt/setup.c b/arch/powerpc/platforms/microwatt/setup.c index 5e1c0997170d..a942c446aeab 100644 --- a/arch/powerpc/platforms/microwatt/setup.c +++ b/arch/powerpc/platforms/microwatt/setup.c @@ -34,10 +34,19 @@ static void __init microwatt_setup_arch(void) microwatt_rng_init(); } +static void microwatt_idle(void) +{ + if (!prep_irq_for_idle_irqsoff()) + return; + + __asm__ __volatile__ ("wait"); +} + define_machine(microwatt) { .name = "microwatt", .compatible = "microwatt-soc", .init_IRQ = microwatt_init_IRQ, .setup_arch = microwatt_setup_arch, .progress = udbg_progress, + .power_save = microwatt_idle, }; |