Forráskód Böngészése

arm: Add PSCI shutdown function

Using PSCI you can not only reset the system, you can also shut it down!
This patch exposes a function to do exactly that to whatever code wants
to make use of it.

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Alexander Graf 8 éve
szülő
commit
3ee655ed83
2 módosított fájl, 16 hozzáadás és 0 törlés
  1. 15 0
      arch/arm/cpu/armv8/fwcall.c
  2. 1 0
      arch/arm/include/asm/system.h

+ 15 - 0
arch/arm/cpu/armv8/fwcall.c

@@ -97,3 +97,18 @@ void __noreturn psci_system_reset(void)
 	while (1)
 		;
 }
+
+void __noreturn psci_system_off(void)
+{
+	struct pt_regs regs;
+
+	regs.regs[0] = ARM_PSCI_0_2_FN_SYSTEM_OFF;
+
+	if (use_smc_for_psci)
+		smc_call(&regs);
+	else
+		hvc_call(&regs);
+
+	while (1)
+		;
+}

+ 1 - 0
arch/arm/include/asm/system.h

@@ -116,6 +116,7 @@ void flush_l3_cache(void);
 void smc_call(struct pt_regs *args);
 
 void __noreturn psci_system_reset(void);
+void __noreturn psci_system_off(void);
 
 #endif	/* __ASSEMBLY__ */