From: Paul Mackerras Date: Fri, 31 Jan 2025 06:28:39 +0000 (+1100) Subject: powerpc/microwatt: Define an idle power-save function X-Git-Tag: v6.15-rc1~133^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2b0a438d5380c32817e1b2c883bd0494461e9f4f;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Madhavan Srinivasan Link: https://patch.msgid.link/Z5xtl1m_Gqc-HLjY@thinks.paulus.ozlabs.org --- diff --git a/arch/powerpc/platforms/microwatt/setup.c b/arch/powerpc/platforms/microwatt/setup.c index 5e1c0997170dc..a942c446aeab8 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, };