Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8efc26b4 authored by Guenter Roeck's avatar Guenter Roeck Committed by Elliot Berman
Browse files

FROMLIST: ARM: 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.

Bug: 146512338
Change-Id: I9253eab4b521d8b39196909cb0780aa0aaa041db
Link: https://lore.kernel.org/patchwork/patch/1139629/


Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Reviewed-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 1704a701
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -1073,6 +1073,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;
@@ -1132,8 +1146,10 @@ void __init setup_arch(char **cmdline_p)
	paging_init(mdesc);
	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();