summaryrefslogtreecommitdiff
path: root/arch/xtensa/platforms/iss/setup.c
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2023-06-07 04:54:10 +0300
committerMax Filippov <jcmvbkbc@gmail.com>2023-06-13 05:48:56 +0300
commit11976fe2a47aa952b8fec54bc2bd54d57642f650 (patch)
tree4cd122a0864ab08b5591dc17fbc4a0f113d771a8 /arch/xtensa/platforms/iss/setup.c
parent71a5fd7d89fb6e6071f041ba1b55837837ccddb8 (diff)
downloadlinux-11976fe2a47aa952b8fec54bc2bd54d57642f650.tar.xz
xtensa: drop platform_restart
Instead of using xtensa-specific platform_restart callback use do_kernel_restart in the machine_restart implementation and reimplement existing platform_restart users with register_restart_handler. Drop platform_restart declaration and default implementation. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/platforms/iss/setup.c')
-rw-r--r--arch/xtensa/platforms/iss/setup.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/xtensa/platforms/iss/setup.c b/arch/xtensa/platforms/iss/setup.c
index d3433e1bb94e..a7009f223ef2 100644
--- a/arch/xtensa/platforms/iss/setup.c
+++ b/arch/xtensa/platforms/iss/setup.c
@@ -16,6 +16,7 @@
#include <linux/notifier.h>
#include <linux/panic_notifier.h>
#include <linux/printk.h>
+#include <linux/reboot.h>
#include <linux/string.h>
#include <asm/platform.h>
@@ -36,14 +37,20 @@ void platform_power_off(void)
simc_exit(0);
}
-void platform_restart(void)
+static int iss_restart(struct notifier_block *this,
+ unsigned long event, void *ptr)
{
/* Flush and reset the mmu, simulate a processor reset, and
* jump to the reset vector. */
cpu_reset();
- /* control never gets here */
+
+ return NOTIFY_DONE;
}
+static struct notifier_block iss_restart_block = {
+ .notifier_call = iss_restart,
+};
+
static int
iss_panic_event(struct notifier_block *this, unsigned long event, void *ptr)
{
@@ -82,4 +89,5 @@ void __init platform_setup(char **p_cmdline)
}
atomic_notifier_chain_register(&panic_notifier_list, &iss_panic_block);
+ register_restart_handler(&iss_restart_block);
}