Skip to contentSkip to conversation

poweroff via pm_power_off if set

RFC In review Christian Krafft 2 participants 3 messages Jun 13, 2008 – Jun 15, 2008 PowerPC

lore
Share & tools
lore
#0 lore raw

RFC 1/1 poweroff via pm_power_off if set

This patch is needed to make ipmi_poweroff working on powerpc.
It straightens the poweroff procedure to match with other architectures. At the moment powerpc plattforms can define their poweroff method using ppc_md.power_off. The only way for plattform independent driver (ipmi_poweroff) to register it's poweroff function is to use pm_power_off. So machine_power_off should check whether pm_power_off has been set and if so it should be used. If not, plattform dependent ppc_md.power_off should be called.

arch/powerpc/kernel/setup-common.c +3 -1
Index: linux.git/arch/powerpc/kernel/setup-common.c
===================================================================
@@ -121,6 +121,8 @@ void machine_restart(char *cmd)
 void machine_power_off(void)
 {
 	machine_shutdown();
+	if (pm_power_off)
+		pm_power_off();
 	if (ppc_md.power_off)
 		ppc_md.power_off();
 #ifdef CONFIG_SMP
@@ -133,7 +135,7 @@ void machine_power_off(void)
 /* Used by the G5 thermal driver */
 EXPORT_SYMBOL_GPL(machine_power_off);
 
-void (*pm_power_off)(void) = machine_power_off;
+void (*pm_power_off)(void) = NULL;
 EXPORT_SYMBOL_GPL(pm_power_off);
 
 void machine_halt(void)
Signature · 13 lines
Mit freundlichen Gruessen,
kind regards,

Christian Krafft
IBM Systems & Technology Group,
Linux Kernel Development
IT Specialist


Vorsitzender des Aufsichtsrats:	Martin Jetter
Geschaeftsfuehrung:		Herbert Kircher
Sitz der Gesellschaft:		Boeblingen
Registriergericht:		Amtsgericht Stuttgart, HRB 243294
#1 lore raw
Quoted 7 lines · Christian Krafft

This patch is needed to make ipmi_poweroff working on powerpc.
It straightens the poweroff procedure to match with other architectures. At the moment powerpc plattforms can define their poweroff method using ppc_md.power_off. The only way for plattform independent driver (ipmi_poweroff) to register it's poweroff function is to use pm_power_off. So machine_power_off should check whether pm_power_off has been set and if so it should be used. If not, plattform dependent ppc_md.power_off should be called.

It seems like this should be the other way around. Meaning ppc_md.power_off should be called first than pm_power_off. If a platform provides a power off mechanism that should presuming take precedence over the ipmi_poweroff.

- k

#2 lore raw
Quoted 16 lines · On Fri, 13 Jun 2008 11:00:33 -0500 Kumar Gala <[email protected]> wrote:
Quoted 4 lines · Christian Krafft

This patch is needed to make ipmi_poweroff working on powerpc. It straightens the poweroff procedure to match with other architectures.
At the moment powerpc plattforms can define their poweroff method

Quoted 8 lines

using
ppc_md.power_off. The only way for plattform independent driver (ipmi_poweroff)
to register it's poweroff function is to use pm_power_off. So machine_power_off
should check whether pm_power_off has been set and if so it should be used.
If not, plattform dependent ppc_md.power_off should be called.

Quoted 6 lines

It seems like this should be the other way around. Meaning ppc_md.power_off should be called first than pm_power_off. If a platform provides a power off mechanism that should presuming take precedence over the ipmi_poweroff.

- k

I'd see the pm_power_off as an option to override platform specific poweroff function. If you want to use ppc_md.power_off you simply don't need to load ipmi_poweroff module. Also it would not be possible to use ipmi_poweroff on plattforms that provide a ppc_md.power_off.

Signature · 13 lines
Mit freundlichen Gruessen,
kind regards,

Christian Krafft
IBM Systems & Technology Group,
Linux Kernel Development
IT Specialist


Vorsitzender des Aufsichtsrats:	Martin Jetter
Geschaeftsfuehrung:		Herbert Kircher
Sitz der Gesellschaft:		Boeblingen
Registriergericht:		Amtsgericht Stuttgart, HRB 243294