mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 17:59:32 +00:00
ARM: 9094/1: Register with kernel restart handler
By making use of the kernel restart handler, board specific restart handlers can be prioritized amongst available mechanisms for a particular board or system. Select the default priority of 128 to indicate that the restart callback in the machine description is the default restart mechanism. Acked-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
2bb565bbdc
commit
ce8f1ccbc0
1 changed files with 18 additions and 2 deletions
|
@ -1081,6 +1081,20 @@ void __init hyp_mode_check(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
static void (*__arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd);
|
||||
|
||||
static int arm_restart(struct notifier_block *nb, unsigned long action,
|
||||
void *data)
|
||||
{
|
||||
__arm_pm_restart(action, data);
|
||||
return NOTIFY_DONE;
|
||||
}
|
||||
|
||||
static struct notifier_block arm_restart_nb = {
|
||||
.notifier_call = arm_restart,
|
||||
.priority = 128,
|
||||
};
|
||||
|
||||
void __init setup_arch(char **cmdline_p)
|
||||
{
|
||||
const struct machine_desc *mdesc = NULL;
|
||||
|
@ -1149,8 +1163,10 @@ void __init setup_arch(char **cmdline_p)
|
|||
kasan_init();
|
||||
request_standard_resources(mdesc);
|
||||
|
||||
if (mdesc->restart)
|
||||
arm_pm_restart = mdesc->restart;
|
||||
if (mdesc->restart) {
|
||||
__arm_pm_restart = mdesc->restart;
|
||||
register_restart_handler(&arm_restart_nb);
|
||||
}
|
||||
|
||||
unflatten_device_tree();
|
||||
|
||||
|
|
Loading…
Reference in a new issue