150acfb2bSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only 276d2a049SPalmer Dabbelt /* 376d2a049SPalmer Dabbelt * Copyright (C) 2012 Regents of the University of California 476d2a049SPalmer Dabbelt */ 576d2a049SPalmer Dabbelt 676d2a049SPalmer Dabbelt #include <linux/reboot.h> 75ed881bcSPaul Walmsley #include <linux/pm.h> 876d2a049SPalmer Dabbelt default_power_off(void)9bf0102a0SChristoph Hellwigstatic void default_power_off(void) 10bf0102a0SChristoph Hellwig { 1186fe639aSChristoph Hellwig while (1) 1286fe639aSChristoph Hellwig wait_for_interrupt(); 13bf0102a0SChristoph Hellwig } 14bf0102a0SChristoph Hellwig 15f2928e22SDimitri John Ledkov void (*pm_power_off)(void) = NULL; 1640594558SAndreas Schwab EXPORT_SYMBOL(pm_power_off); 1776d2a049SPalmer Dabbelt machine_restart(char * cmd)1876d2a049SPalmer Dabbeltvoid machine_restart(char *cmd) 1976d2a049SPalmer Dabbelt { 2076d2a049SPalmer Dabbelt do_kernel_restart(cmd); 2176d2a049SPalmer Dabbelt while (1); 2276d2a049SPalmer Dabbelt } 2376d2a049SPalmer Dabbelt machine_halt(void)2476d2a049SPalmer Dabbeltvoid machine_halt(void) 2576d2a049SPalmer Dabbelt { 26*6b22c736SDmitry Osipenko do_kernel_power_off(); 27f2928e22SDimitri John Ledkov default_power_off(); 2876d2a049SPalmer Dabbelt } 2976d2a049SPalmer Dabbelt machine_power_off(void)3076d2a049SPalmer Dabbeltvoid machine_power_off(void) 3176d2a049SPalmer Dabbelt { 32*6b22c736SDmitry Osipenko do_kernel_power_off(); 33f2928e22SDimitri John Ledkov default_power_off(); 3476d2a049SPalmer Dabbelt } 35