diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c b/arch/powerpc/platforms/85xx/corenet_generic.c index 17ae75d62518a014b36d9c9c0debfd0ef1873b57..499ea16275e5348d9ea43aee10d730fc9c8a0c69 100644 --- a/arch/powerpc/platforms/85xx/corenet_generic.c +++ b/arch/powerpc/platforms/85xx/corenet_generic.c @@ -9,6 +9,7 @@ #include <linux/kernel.h> #include <linux/pci.h> +#include <linux/reboot.h> #include <linux/kdev_t.h> #include <linux/delay.h> #include <linux/interrupt.h> @@ -161,7 +162,7 @@ static int __init corenet_generic_probe(void) ppc_md.get_irq = ehv_pic_get_irq; ppc_md.restart = fsl_hv_restart; - pm_power_off = fsl_hv_halt; + register_platform_power_off(fsl_hv_halt); ppc_md.halt = fsl_hv_halt; #ifdef CONFIG_SMP /* diff --git a/arch/powerpc/platforms/85xx/sgy_cts1000.c b/arch/powerpc/platforms/85xx/sgy_cts1000.c index 98ae640751934d0723ec0335214717332cb93783..e7043150ce56f613b298be93a2acd82f51ee8a23 100644 --- a/arch/powerpc/platforms/85xx/sgy_cts1000.c +++ b/arch/powerpc/platforms/85xx/sgy_cts1000.c @@ -118,7 +118,7 @@ static int gpio_halt_probe(struct platform_device *pdev) /* Register our halt function */ ppc_md.halt = gpio_halt_cb; - pm_power_off = gpio_halt_cb; + register_platform_power_off(gpio_halt_cb); printk(KERN_INFO "gpio-halt: registered GPIO %d (%d trigger, %d" " irq).\n", gpio, trigger, irq); @@ -132,10 +132,11 @@ static int gpio_halt_remove(struct platform_device *pdev) int gpio = of_get_gpio(halt_node, 0); int irq = irq_of_parse_and_map(halt_node, 0); + unregister_platform_power_off(gpio_halt_cb); + free_irq(irq, halt_node); ppc_md.halt = NULL; - pm_power_off = NULL; gpio_free(gpio);