Register with kernel poweroff handler instead of setting pm_power_off directly. Select fallback priority since the code does not really poweroff the system but resets it instead.
Signed-off-by: Guenter Roeck <li...@roeck-us.net> --- v2: - Use define to specify poweroff handler priority - Fix headline and description - Merge with restart handler code now used in same driver - Use dev_warn instead of dev_err drivers/power/reset/msm-poweroff.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/power/reset/msm-poweroff.c b/drivers/power/reset/msm-poweroff.c index 4702efd..d44f332 100644 --- a/drivers/power/reset/msm-poweroff.c +++ b/drivers/power/reset/msm-poweroff.c @@ -19,10 +19,12 @@ #include <linux/of.h> #include <linux/platform_device.h> #include <linux/module.h> +#include <linux/notifier.h> #include <linux/reboot.h> #include <linux/pm.h> static void __iomem *msm_ps_hold; + static int do_msm_restart(struct notifier_block *nb, unsigned long action, void *data) { @@ -37,11 +39,11 @@ static struct notifier_block restart_nb = { .priority = 128, }; -static void do_msm_poweroff(void) -{ +static struct notifier_block msm_poweroff_nb = { /* TODO: Add poweroff capability */ - do_msm_restart(&restart_nb, 0, NULL); -} + .notifier_call = do_msm_restart, + .priority = POWEROFF_PRIORITY_FALLBACK, +}; static int msm_restart_probe(struct platform_device *pdev) { @@ -55,7 +57,8 @@ static int msm_restart_probe(struct platform_device *pdev) register_restart_handler(&restart_nb); - pm_power_off = do_msm_poweroff; + if (register_power_off_handler(&msm_poweroff_nb)) + dev_warn(&pdev->dev, "Failed to register poweroff handler\n"); return 0; } -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/