Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
 
 extern int mips_revision_sconid;
 
-extern void mips_reboot_setup(void);
-
 #ifdef CONFIG_PCI
 extern void mips_pcibios_init(void);
 #else
 
  * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
  * Author: Fuxin Zhang, zhangfx@lemote.com
  */
+#include <linux/init.h>
 #include <linux/pm.h>
 
 #include <asm/reboot.h>
        loongson2e_halt();
 }
 
-void mips_reboot_setup(void)
+static int __init mips_reboot_setup(void)
 {
        _machine_restart = loongson2e_restart;
        _machine_halt = loongson2e_halt;
        pm_power_off = loongson2e_power_off;
+
+       return 0;
 }
+
+arch_initcall(mips_reboot_setup);
 
 #include <linux/screen_info.h>
 #endif
 
-extern void mips_reboot_setup(void);
-
 unsigned long cpu_clock_freq;
 unsigned long bus_clock;
 unsigned int memsize;
 {
        set_io_port_base((unsigned long)ioremap(LOONGSON2E_IO_PORT_BASE,
                                IO_SPACE_LIMIT - LOONGSON2E_PCI_IO_START + 1));
-       mips_reboot_setup();
 
        __wbflush = wbflush_loongson2e;